2010-08-30 7 views
1

J'ai une page de connexion qui a un bouton Avancé. Le bouton définit une vue dans laquelle un utilisateur peut ajouter des informations. Lorsque je clique sur Enregistrer, il revient à ma vue principale (page de connexion) et toutes les informations sont effacées? Comment puis-je sauvegarder l'état de la première vue lors de la navigation et ensuite revenir à elle?Comment naviguer entre les vues? sans perdre les données de la vue initiale

Merci

Répondre

3

Jetez un coup d'oeil au cycle de vie de l'activité, décrite dans le activity docs. Lorsqu'une activité passe en arrière-plan, comme lorsque vous démarrez une nouvelle activité, elle peut être supprimée et sera recréée lorsque l'utilisateur reviendra à l'activité. De plus, votre vue sera recréée lors d'un changement de configuration, comme un changement d'orientation.

Dans votre cas, vous souhaiterez probablement enregistrer l'état dans la méthode onPause() et le réinitialiser dans la méthode onResume(). Un moyen facile de partager l'état entre les activités est via SharedPreferences. Voir Saving Persistent State pour un exemple.

1

Vous pouvez accomplir votre tâche de deux façons.

1> En remplaçant les méthodes OnPause() et OnResume du cycle de vie de l'activité. 2> En utilisant les préférences partagées, vous pouvez également le faire.

Maintenant, cela dépend de ce que vous voulez préserver ie. données dans listview ou arraylist etc. si u UTILISIEZ listview et Arraylist u peuvent accomplir par le code suivant

u peut créer la classe ..

ResultsAdapter public class étend ArrayAdapter implémente filtrables {

SubItems ArrayList privé ; private ArrayList allItems; // = new ArrayList(); private LayoutInflateur gonfleur; private PType Filtre filtre; test OnCheckedChangeListener privé;

ResultsAdapter publique (contexte de contexte, int textViewResourceId, objets ArrayList, OnCheckedChangeListener a) {

super(context, textViewResourceId, items); 
    //this.subItems = items; 
    for(int i = 0;i < items.size();i++){ 
     subItems.add(items.get(i)); 
    } 
    this.allItems = this.subItems; 
    inflater= LayoutInflater.from(context); 

    test =a; 

}

maintenant sur onCreate ajouter cette

ListView lvr = (ListView)findViewById(R.id.search_results); 


    this.m_adapter = new ResultsAdapter(home.this, R.layout.listrow, 
              sResultsArr,home.this); 
    this.specsAdapter = new FeaturesExpandableAdapter(home.this,new ArrayList<String> 
              (),new ArrayList<ArrayList<Feature>>()); 
    lvr.setAdapter(this.m_adapter); 

est cette réponse vous la question

Merci Rakesh

+0

Merci Raskesh .. Je suis assez nouveau, donc pas sûr qu'il aide J'ai une page de connexion utilisateur (EditText), Mot de passe (EditText) et une avancée (bouton) Le bouton Avancé ouvre une vue (setContentView) qui prend un paramètre (URL - EditText classé) Je remplis l'URL et clique sur le bouton Enregistrer et je veux revenir à l'écran de connexion qui devrait rester rempli ... Est-ce que cela clarifie plus ? – Martin

Questions connexes