0

Я использую фрагменты для получения пользовательских данных, а затем в своем последнем фрагменте я использую кнопку отправки, чтобы отправить данные на сервер, чтобы сохранить их, Проблема, с которой я столкнулся, - это когда я нажимаю кнопку «Отправить», приложение падает и говорит, что приложение, к сожалению, остановилось, я думаю, что его из-за android.os.networkOnMainThreadException, потому что эта ошибка я получал ранее.Ошибка и приложение остановлено К сожалению, также StrictMode.ThreadPolicy() не работает

Мой код последнего фрагмента, где я, имеющий кнопку отправить это

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; 

Теперь я использую AsyncTask, его код

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"; 
    } 
+3

Поскольку вызова '' Toast.show' из doInBackground ' –

+3

Возможные дубликат [NetworkOnMainThreadException] (http://stackoverflow.com/questions/5150637/networkonmainthreadexception) –

+0

Пожалуйста, пост StackTrace, когда вы размещаете вопрос. –

ответ

1

показать сообщение здравицы в поток пользовательского интерфейса или переместить тост сообщение toPostExecute().

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(); 

     runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 
         Toast.makeText(getActivity(), "Done",Toast.LENGTH_LONG).show(); 
        } 
       }); 


    } 
    catch(Exception e) 
    { 
     Toast.makeText(getActivity(), "Error "+e.toString(), 
       Toast.LENGTH_LONG).show(); 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^