Bonjour à vous.
Je suis en train d'apprendre le développement Android, et, très mauvais en Java, je m'arrache depuis ce matin les cheveux sur un point qui doit être simple malgré tout.
Mon activité FullScreenActivity est un login (deux champs textes) et le bouton Connexion appelle donc une seconde activity ParlezVousTask. Jusque là, tout va bien, mais j'aimerais démarrer une troisième activity (MenuActivity) sur onPostExecute() de cette task, et c'est là que je bloque.
Les posts et tutos que j'ai pu parcourir indiquent qu'il faut utiliser la méthode startActivity(), mais j'ai l'erreur suivante:
The method startActivity(Intent) is undefined for the type ParlezVousTask.
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 package com.example.appandroid; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; import android.widget.Toast; import com.example.appandroid.util.SystemUiHider; /** * An example full-screen activity that shows and hides the system UI (i.e. * status bar and navigation/system bar) with user interaction. * * @see SystemUiHider */ public class FullscreenActivity extends Activity { private static final String TAG = "Toto"; private EditText input_login; private EditText input_pass; private ProgressBar progressbar; private String login; private String pass; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fullscreen); Log.i(TAG, "onCreate!"); input_login = (EditText) findViewById(R.id.input_login); input_pass = (EditText) findViewById(R.id.input_pass); progressbar = (ProgressBar) findViewById(R.id.progressBar); Button button_effacer = (Button) findViewById(R.id.button_clear); button_effacer.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub input_login.setText(""); input_pass.setText(""); } }); Button button_valider = (Button) findViewById(R.id.button_send); button_valider.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub login = input_login.getText().toString(); pass = input_pass.getText().toString(); new ParlezVousTask(progressbar, login, pass).execute(login, pass); Toast.makeText(FullscreenActivity.this, "Toast !", Toast.LENGTH_SHORT).show(); } }); } @Override protected void onDestroy() { Log.i(TAG, "onDestroy!"); // TODO Auto-generated method stub super.onDestroy(); } @Override protected void onPause() { Log.i(TAG, "onPause!"); // TODO Auto-generated method stub super.onPause(); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { // TODO Auto-generated method stub Log.i(TAG, "onRestoreInstanceState!"); super.onRestoreInstanceState(savedInstanceState); } @Override protected void onResume() { // TODO Auto-generated method stub Log.i(TAG, "onResume!"); super.onResume(); } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub Log.i(TAG, "onSaveInstanceState!"); super.onSaveInstanceState(outState); } @Override public void startActivity(Intent intent) { // TODO Auto-generated method stub super.startActivity(intent); } }Merci d'avance si vous pouviez m'aider à me débloquer. Je commence à tout mélanger et je ne comprends pas non plus pourquoi quelque chose du type New MenuActivity(...) ne fonctionne pas.
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 package com.example.appandroid; import java.io.InputStream; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import android.app.Activity; import android.content.Intent; import android.sax.StartElementListener; import android.view.View; import android.widget.ProgressBar; import android.widget.Toast; public class ParlezVousTask extends android.os.AsyncTask<String, Void, Boolean> { private final ProgressBar loading; private ProgressBar progressbar; private String login; private String pass; public ParlezVousTask(ProgressBar loading, String login, String pass) { this.loading = loading; this.login = login; this.pass = pass; } @Override protected Boolean doInBackground(String... params) { String login = params[0]; String pass = params[1]; // TODO Auto-generated method stub HttpClient mClient = new DefaultHttpClient(); HttpGet get = new HttpGet("http://***/connect/" + login + "/" + pass); try { HttpResponse res = mClient.execute(get); InputStream content = res.getEntity().getContent(); String contentString = InputStreamToString.convert(content); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Boolean result) { loading.setVisibility(View.INVISIBLE); ParlezVousTask.startActivity(new Intent(ParlezVousTask, MenuActivity.class)); } @Override protected void onPreExecute() { loading.setVisibility(View.VISIBLE); } }
Bien cordialement.
Partager