Je développe une application mobile dans android, et j'utilise Httpost pour obtenir des informations à partir d'un service web mais ce n'est pas le problème, le problème est que je mets l'action sur un bouton mais cela ne fonctionne jamais c'est mon exemple de codeLe bouton ne répond pas dans une application Android
une solution?
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
setTitle("Connexion");
email = (EditText) this.findViewById(R.id.email);
password = (EditText) this.findViewById(R.id.password);
cnx = (Button) this.findViewById(R.id.button1);
cnx.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String em = email.getText().toString();
String ps = password.getText().toString();
String url = getString(R.string.serveur);
ArrayList<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>();
nameValuePairs.add(new BasicNameValuePair("email", em));
nameValuePairs.add(new BasicNameValuePair("password", ps));
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url+"/UserLogin");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = reader.readLine();
sb.append(line + "\n");
is.close();
/***************************/
/* Résultats de la requête */
/***************************/
String result = sb.toString();
JSONObject jObj = new JSONObject(result);
System.out.println(jObj);
System.out.println("karim");
}
catch(Exception e) {}
}
});
}
}
Vous pouvez vouloir rea d ceci: http://developer.android.com/training/basics/network-ops/index.html –
Pouvez-vous décrire ce qui se passe lorsque vous cliquez sur le bouton. Quoi qu'il en soit, je pense que Network Activity sur le thread UI n'est pas autorisé à partir d'Android 3.0 et supérieur. Vous devrez le faire avec une tâche Async maintenant. N'oubliez pas non plus d'ajouter les permissions nécessaires dans votre manifeste :) –