Bonjour,
Je développe actuellement une application android en java avec android sudio.
Je cherche à faire un système d'inscription, pour cela j'ai une activité register avec 3 EditText (Pseudo, mail, mdp) , un bouton inscription ainsi qu'un TextView vide (Affichant un message d'erreur si il y a).
Register contient ce code:
Donc à l'appuie du bouton la tache de fond (AsyncTask) s’exécute.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class register extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_register); Button button; button = (Button) findViewById(R.id.register); //on applique un écouteur d'événement au clique sur le bouton button.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { String result = ""; EditText pseudo = (EditText)findViewById(R.id.pseudo); final String vpseudo = pseudo.getText().toString(); EditText mail = (EditText)findViewById(R.id.mail); String vmail = mail.getText().toString(); EditText mdp = (EditText)findViewById(R.id.mdp); String vmdp = mdp.getText().toString(); final TextView erreurtxt = (TextView) findViewById(R.id.erreur); new fond().execute(); } } ); } }
La tache de fond:
Ce que je cherche à faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 import android.os.AsyncTask; import org.apache.http.HttpEntity; 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 org.json.JSONObject; import java.io.InputStream; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; class fond extends AsyncTask<Void, Integer, String> { protected void onPreExecute(String... param) { } protected String doInBackground(Void... arg0) { JSONObject jObj; ArrayList<NameValuePair> vrequete = new ArrayList<NameValuePair>(); vrequete.add(new BasicNameValuePair("pseudo", "test")); vrequete.add(new BasicNameValuePair("mail", "test")); vrequete.add(new BasicNameValuePair("mdp", "test")); try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://192.168.1.16/android/register.php"); httppost.setEntity(new UrlEncodedFormEntity(vrequete)); 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(); String result = sb.toString(); jObj = new JSONObject(result); } catch (Exception e) { e.printStackTrace(); } return null; } protected void onProgressUpdate(Integer... a) { } protected void onPostExecute() { // erreurtxts.setText("Fin traitement"); } }
-Passer les variables des edittext (Déclarés dans l'activité register), ainsi que le TextView (Pour modifier le texte affiché dans l'AsyncTask) en les rendant accessible partout dans la classe.
-Bien paramètre l'AsyncTask (Je débute, je ne vois donc pas les imperfection majeurs)
-Si possible trouver un moyen de permettre à l'utilisateur de refaire une requête après une déjà faites
Je me tourne vers vous car après des heures d'acharnement je reste bloqué.
Ps: Je débute, donc un peu d'indulgence Et j’espère être dans la bonne catégorie.
Partager