|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Étudiant Inscription : janvier 2013 Messages : 4 ![]() |
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 :
Code :
Bien cordialement. |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : décembre 2004 Messages : 1 618 ![]() |
Simplement parce que la méthode startActivity appartient à la classe Context. A toi d'amener une instance de ce contexte jusqu'à ton AsyncTask (via son constructeur typiquement) pour pouvoir l'invoquer.
__________________
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS] Retrouvez mes cours et tutos autour d'Android/Java/Eclipse sur http://olegoaer.developpez.com/
|
|
|
10
|
|
|
#3 | ||||
|
Invité de passage
![]() Étudiant Inscription : janvier 2013 Messages : 4 ![]() |
Merci pour la piste. J'ai "réussi" à éliminer mon erreur sur le code, mais l'application plante au démarrage et est stoppée. J'ai juste rajouté cette variable
private Context actvitiyContext = this.getApplicationContext(); dans mon activité FullScreenActivity passée en paramètre dans le constructeur de ma task. La ligne démarrant l'activité dans la task est commentée, mais le crash subsiste toujours. Est-ce bien là la manière de faire ? Édit: je crois qu'il s'agit d'une NullPointerException. Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
![]() ![]() |
Tu ne peux pas référencer 'this' dans les constructions automatique ('this' n'est pas encore instancié).
D'autre part cette solution n'a aucun différence avec appeler directement getApplicationContext() depuis le code donc n'apporte rien. Et puis c'est completement inutile vu que l'Application est elle meme un context ! (il suffit donc de passer "this")
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
|
|
10
|
|
|
#5 | ||||
|
Invité de passage
![]() Étudiant Inscription : janvier 2013 Messages : 4 ![]() |
Merci beaucoup pour cette nouvelle piste, qui m'a débloqué. A priori, je me rapproche du but, mais une erreur subsiste, cette fois du côté de ma MenuActivity. Le crash intervient après la onPostExecution de ma task.
L'erreur est une InstantiationException,avec comme précision "no empty constructor". Meme si l'erreur ne vient probablement pas de là, je précise que j'ai rajouté une ligne au manifest: <activity android:name=".MenuActivity" /> J'ai pu constater que certains avait solutionnés ce problème avec super("...") dans le constructeur mais dans mon cas Eclipse ne me propose que super(), ce qui ne m'avance pas d'avantage. Ici est le morceau de code appelant l'activity. Code :
Code :
|
||||
|
|
00
|
|
|
#6 |
![]() ![]() |
Pourquoi un constructeur à l'activité ?
Une activité DOIT avoir un constructeur public sans paramètre (ou pas de constructeur du tout). Et en aucun cas un constructeur privé avec paramètres, sinon comment le système pourra la construire ? comment saura-t-il quel paramètre passer ?
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
|
|
10
|
|
|
#7 | ||
|
Invité de passage
![]() Étudiant Inscription : janvier 2013 Messages : 4 ![]() |
Effectivement, je viens de résoudre le problème de cette manière-ci, le constructeur étant de trop.
Code :
Merci beaucoup pour vos interventions ! |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com