データベースへのデータ送信に問題があります。私は別のクラスで同じ種類のコードを使用していますが、それは正常に機能していますが、どういうわけかこれは機能していません。
これは HttpResponse を持つクラスです。エラーはありませんが、コードが到達すると
HttpResponse response = httpclient.execute(httppost);
それはキャッチに入り、「Klant not added」を返します)
public void StoreKlantInDatabase()
{
EditText ETklantnaam = (EditText) dialog.findViewById(R.id.addKlantNaam);
EditText ETlocatie = (EditText) dialog.findViewById(R.id.addKlantLocatie);
EditText ETfabriek = (EditText) dialog.findViewById(R.id.addFabrieken);
EditText ETmachine = (EditText) dialog.findViewById(R.id.addMachines);
String klantnaam = ETklantnaam.getText().toString();
String locatie = ETlocatie.getText().toString();
String fabriek = ETfabriek.getText().toString();
String machine= ETmachine.getText().toString();
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(urlInsertKlant);
try
{
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("klantnaam", klantnaam));
nameValuePairs.add(new BasicNameValuePair("locatie", locatie));
nameValuePairs.add(new BasicNameValuePair("fabriek", fabriek));
nameValuePairs.add(new BasicNameValuePair("machine", machine));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
@SuppressWarnings("unused")
HttpResponse response = httpclient.execute(httppost);
Toast.makeText(getApplicationContext(), "Klant succesvol toegevoegd", Toast.LENGTH_LONG).show();
}
catch(Exception e)
{
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Klant NIET toegevoegd", Toast.LENGTH_LONG).show();
}
}
このメソッドは、次のようにダイアログから呼び出されます (最後の OnClick メソッドの下):
btnAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// custom dialog
dialog = new Dialog(context);
dialog.setContentView(R.layout.addklant_layout);
dialog.setTitle("Klant toevoegen");
Button BTNannuleren = (Button) dialog.findViewById(R.id.dialogAnnuleren);
// if button is clicked, close the custom dialog
BTNannuleren.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
Button BTNtoevoegen = (Button) dialog.findViewById(R.id.dialogToevoegen);
// if button is clicked, close the custom dialog
BTNtoevoegen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
StoreKlantInDatabase();
dialog.dismiss();
}
});
dialog.show();
}
});
ダイアログの onClick メソッドですべてを実行しようとしましたが、違いはありませんでした。
Ofcouse ダイアログは、次のようなコードの上部で開始されます。
Dialog dialog;
誰かが私が間違っているところを見ていますか? 私は少し迷っています。
編集:これはキャッチで起こります:
09-30 09:36:52.452: W/System.err(14665): android.os.NetworkOnMainThreadException
09-30 09:36:52.482: W/System.err(14665): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1186)
09-30 09:36:52.482: W/System.err(14665): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
09-30 09:36:52.482: W/System.err(14665): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
09-30 09:36:52.482: W/System.err(14665): at libcore.io.IoBridge.connect(IoBridge.java:112)
09-30 09:36:52.482: W/System.err(14665): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
09-30 09:36:52.482: W/System.err(14665): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
09-30 09:36:52.482: W/System.err(14665): at java.net.Socket.connect(Socket.java:872)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:591)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:510)
09-30 09:36:52.482: W/System.err(14665): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:488)
09-30 09:36:52.482: W/System.err(14665): at com.example.emmtec.FirstScreen.StoreKlantInDatabase(FirstScreen.java:272)
09-30 09:36:52.482: W/System.err(14665): at com.example.emmtec.FirstScreen$10$2.onClick(FirstScreen.java:236)
09-30 09:36:52.482: W/System.err(14665): at android.view.View.performClick(View.java:3538)
09-30 09:36:52.492: W/System.err(14665): at android.view.View$PerformClick.run(View.java:14330)
09-30 09:36:52.492: W/System.err(14665): at android.os.Handler.handleCallback(Handler.java:608)
09-30 09:36:52.492: W/System.err(14665): at android.os.Handler.dispatchMessage(Handler.java:92)
09-30 09:36:52.492: W/System.err(14665): at android.os.Looper.loop(Looper.java:156)
09-30 09:36:52.492: W/System.err(14665): at android.app.ActivityThread.main(ActivityThread.java:4977)
09-30 09:36:52.492: W/System.err(14665): at java.lang.reflect.Method.invokeNative(Native Method)
09-30 09:36:52.492: W/System.err(14665): at java.lang.reflect.Method.invoke(Method.java:511)
09-30 09:36:52.492: W/System.err(14665): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-30 09:36:52.492: W/System.err(14665): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-30 09:36:52.492: W/System.err(14665): at dalvik.system.NativeStart.main(Native Method)
前もって感謝します!