Эти коды выполняются после нажатия кнопки. Я пытаюсь отправить данные строк в файл php на моем сервере. Но приложение остановилось после нажатия кнопки. Могу я знать, в чем проблема? Любая помощь действительно оценена: D
HttpClient client = new DefaultHttpClient(); HttpPost hpost = new HttpPost("http://myservername.com/postTest.php"); status = mStatus.getText().toString(); event = mEvent.getText().toString(); time = mTime.getText().toString(); try{ List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("status", status)); nameValuePairs.add(new BasicNameValuePair("event", event)); nameValuePairs.add(new BasicNameValuePair("time", time)); hpost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); client.execute(hpost); mStatus.setText(""); mEvent.setText(""); mTime.setText(""); }catch (UnsupportedEncodingException e){ Toast.makeText(this, "Unsupported Encoding Exception " + e.getMessage(), Toast.LENGTH_LONG).show(); }catch (ClientProtocolException e){ Toast.makeText(this, "Client Protocol Exception " + e.getMessage(), Toast.LENGTH_LONG).show(); }catch (IOException e){ Toast.makeText(this, "IO Exception "+e.getMessage(), Toast.LENGTH_LONG).show(); }
поместите свой код в поток
new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub // do something } }).start();
и проверьте разрешение AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
Вероятно, проблемы таковы:
Вы пытаетесь отправить данные из темы пользовательского интерфейса. Его можно решить, используя класс Thread:
new Thread () {@Override public void run () {// ваш код отправления}} .start ();
Если вы используете другой поток, вы не можете показать Toast в своей теме. Он может быть разрешен с использованием метода runOnUIThread (Runnable) Activity
} catch (UnsupportedEncodingException e) {runOnUITehread (new Runnable () {@Override public void run () {Toast.makeText (это, "Неподдерживаемое исключение кодирования" + e.getMessage (), Toast.LENGTH_LONG) .show ();} }); }
Или используя обработчик
У вас есть исключение NullPointerException