I'm trying to create a form in which when we click on the button it send to the data base When in run my code everything is ok but when i try to register the form I have that error message : error android.os.NetworkOnMainThreadException
Can you help me!!
package com.example.pst;
import java.util.ArrayList;
//import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.app.Activity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
EditText nom,prenom,email,prevente ;
Button bouton ;
HttpPost httppost;
StringBuffer buffer;
HttpClient httpclient ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.formulaire);
nom = (EditText) findViewById(R.id.editTextFormulaire1) ;
prenom = (EditText) findViewById(R.id.editTextFormulaire2);
email = (EditText) findViewById(R.id.editTextFormulaire3);
prevente = (EditText) findViewById(R.id.editTextFormulaire4);
bouton = (Button) findViewById(R.id.buttonFormulaire1) ;
String enregistre = bouton.getText().toString();
bouton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View nouveau)
{
params[0] = null;
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://10.0.2.2:8080");
try {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("nom", N));
nameValuePairs.add(new BasicNameValuePair("prenom", P));
nameValuePairs.add(new BasicNameValuePair("email", E));
nameValuePairs.add(new BasicNameValuePair("prevente", B));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
Log.i("postData", response.getStatusLine().toString());
}
catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
}
}
};
return null;
}
}.execute();
}
}
I already put this code on my Manifest:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>