0
私はフラグメントを使用してユーザーデータを取得しています。最後のフラグメントでは、送信ボタンを使用してデータをサーバーに保存し、私が直面している問題は、Submitボタンをクリックするとアプリがクラッシュし、残念ながらアプリが停止していると言われています。これは私が前にこのエラーが発生していたためにandroid.os.networkOnMainThreadException
です。エラーとアプリケーションが停止しました残念ながら、StrictMode.ThreadPolicy()も機能しません
今私はasynctaskを使用しています、私は送信ボタンを持っています最後のフラグメントの私のコードは
View rootView = inflater.inflate(R.layout.fragment_dependent, container, false);
Button submit = (Button) rootView.findViewById(R.id.submit);
final EditText empid = (EditText) getActivity().findViewById(R.id.empidtext);
final EditText fname = (EditText) getActivity().findViewById(R.id.fnametext);
final EditText lname = (EditText) getActivity().findViewById(R.id.lnametext);
final EditText family = (EditText) getActivity().findViewById(R.id.familytext);
final EditText email = (EditText) getActivity().findViewById(R.id.emailtext);
final EditText religion = (EditText) getActivity().findViewById(R.id.religiontext);
final EditText nationality = (EditText) getActivity().findViewById(R.id.nationalitytext);
final EditText chronicdiseases = (EditText) getActivity().findViewById(R.id.chronicdiseasestext);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), empid.getText().toString()+" : "+fname.getText().toString(),
Toast.LENGTH_SHORT).show();
eid = empid.getText().toString();
name = fname.getText().toString();
new Insert().execute();
}
});
return rootView;
、そのコードは
private class Insert extends AsyncTask<Void, Void, String> {
protected String doInBackground(Void... params) {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("empid",eid));
nameValuePairs.add(new BasicNameValuePair("fname",name));
//nameValuePairs.add(new BasicNameValuePair("lname",lname.getText().toString()));
//nameValuePairs.add(new BasicNameValuePair("family",family.getText().toString()));
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.0.103/insert.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
iss = entity.getContent();
Toast.makeText(getActivity(), "Done",
Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
Toast.makeText(getActivity(), "Error "+e.toString(),
Toast.LENGTH_LONG).show();
}
return "done";
}
から 'Toast.show'を呼び出すので、' [NetworkOnMainThreadException]の ' –
可能な複製をdoInBackground(http://stackoverflow.com/questions/5150637/networkonmainthreadexception) –
あなたが質問を投稿したときにスタックトレースを投稿してください。 –