2010-05-12 21 views
1

Lorsque mon application démarre, elle vérifie si elle contient des informations d'identification de connexion. Si ce n'est pas le cas, une autre activité est lancée pour inviter l'utilisateur à fournir ces informations d'identification. Mon problème est que lorsque l'activité rapide est lancée, la première activité poursuit son exécution et se termine avec des pointeurs nuls parce que l'activité rapide n'a pas encore retourné les données nécessairesandroid: pause d'une activité jusqu'à la fin d'une autre

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    tv = new TextView(this); 
    setContentView(tv); 

    promptForLoginInfo(); //method creates intent and starts activity 

    displayCredentials(); //prints data to screen 
} 

la sortie se lit comme suit: « null » parce que le programme exécute "displayCredentials()" avant que l'activité de l'invite de connexion ne retourne.

Quelqu'un a une idée de ce qu'il faut faire?

Répondre

5

Votre méthode "promptForLoginInfo()" doit appeler startActivityForResult. Votre méthode "displayCredentials()" ne doit pas être appelée dans la méthode onCreate(), mais dans la méthode onActivityResult.

+0

merci. maintenant que ce problème est résolu passer à la suivante – mtmurdock

0

Avez-vous essayé de vérifier les informations d'identification stockées avant d'appeler displayCredentials()? Si les informations d'identification ne sont pas trouvées, vous pouvez démarrer l'activité par la méthode startActivityForResult() et appeler displayCredentials() après la fin de l'activité de l'invite dans onActivityResult().

1

Dans promptForLoginInfo(); vous devez démarrer activityForResult. alors vous devez déplacer displayCredentials(); de onCreate à onActivityResult