Android vérifier que l'utilisateur est connecté en avant, le reste de début de l'activité de connexion
Je veux l'activité de connexion pour démarrer lorsque l'utilisateur démarre l'application, mais ne s'est pas connecté avant. Si une connexion réussie a été réalisée avant, l'application va ignorer la page de connexion et de passer à MainMenu.java.
Ce que j'ai maintenant est:
public class Login extends Activity implements OnClickListener, TaskCompleteCallback{
first_time_check();
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.configure);
...}
private boolean first_time_check() {
String first = mPreferences.getString("first", null);
if((first == null)){
Intent i = new Intent(Login.this, MainMenu.class);
startActivity(i);
}
return false;
}
...
SharedPreferences.Editor editor = mPreferences.edit();
editor.putString("first", value);
...
editor.commit();
//Close the activity
Intent i = new Intent(Login.this, MainMenu.class);
startActivity(i);
}
Mais je reçois FCs'. Est quelque chose de mal avec la façon dont j'ai mis en place SharedPreferences?
- Votre first_time_check()' à l'intérieur de votre onCreate() ou avez-vous oublié à ajouter à la clôture de la onCreate() dans votre code ci-dessus? Également au sein de la fonction qui est du code que vous avez montré commit (), etc.?
- Je l'ai mis après le onCreate. Si je l'ai mis à l'intérieur, je reçois une tonne d'erreurs. Suis-je censé faire?
- Pas de. Mais votre code ci-dessus ne semble pas refléter.
- toutes mes excuses pour cela, j'ai édité le code
- Alors, où êtes-vous de l'appel à 'first_time_check()' a partir de (ne semble pas être dans onCreate())?
- si je ne peux pas l'appeler à partir d'onCreate(), comment dois-je l'appeler?
- Sans rapport: dans l'édition de la file d'attente, je suis tombé sur une question que vous avez voté lors du triage. Vous avez fait le mauvais choix là-bas. S'il vous plaît: étude de l'aide pour le triage très attentivement, et éviter de mettre des objets dans l'édition de la file d'attente qui ne leur appartient pas. S'il vous plaît comprendre que vos votes ont des conséquences! Je parle de stackoverflow.com/review/triage/20908294. Qui aurait été fermé en sait pas/ou pas de MCVE. Seuls les OP peuvent raisonnablement de le modifier! Hésitez pas à me laisser un commentaire dans le cas où vous avez d'autres questions ou des commentaires pour moi.
Vous devez vous connecter pour publier un commentaire.
Votre code n'appelle jamais que
first_time_check()
, ainsi le avant automatique en cas de retour de l'utilisateur ne fonctionne pas.Vous pourriez en
onCreate()
neDonc pour un nouvel utilisateur,
first_time_check()
avant lui à la page de connexion, sinonla disposition actuelle serait montré et il pourrait continuer sur cette page.
mPreferences
, c'est ok. Mais les deux sont avant d'appelersetContentView()
, droit?De l'utilisation partagée des préférences. Ce qui est bon.
Il y a un petit exemple donné dans ce lien. Ce sera probablement résoudre le problème.
http://developer.android.com/guide/topics/data/data-storage.html
Fondamentalement, je ne suis pas vous voir lire la valeur stockée. Vous êtes à la stocker, puis de s'engager. Mais il n'y a pas de code où vous le lisez. Seulement lorsque vous le lisez, vous pouvez décider de l'activité qui doit être lancée. Vous devez appeler first_time_check() pour résoudre ce problème.
Espère que j'ai été en mesure de vous aider.
Vous pourriez enregistrer le journal dans les détails dans onSaveInstanceState() la méthode et la restaurer quand votre activité redémarre. Par exemple à l'intérieur de onRestore().
Cela peut être fait de deux façons. L'un est de les stocker dans des variables globales et la deuxième est de stocker les données partagées préférences. voir cette exemple.