Aller au contenu

Gestion de favoris


gogui63

Recommended Posts

Bonjour, encore un nouveau sujet désolé je débute et puisque j'essaie d'apprendre tout seul, c'est pas facile ...

J'aimerais ajouter une gestion de favoris dans mon application mais impossible de trouver de la doc la dessus, même en anglais, j'ai pourtant cherché avant de poster mais rien de concluant ... 

Je viens donc à nouveau faire appel à vous ;-) 

 

Comment puis je gérer des favoris ?

 

Dans la pratique (dans mon application) il s'agit d'ajouter des imageview en favoris.

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

 

je ne comprends pas trop ce que tu souhaites faire. Tu as une liste d'imageview et tu veux pouvoir en flagguer certaines en favories pour qu'elles apparaissent dans une liste dédiée ou qu'elles soient mises en avant par rapport aux autres ?

 

si oui, j'ai eu un problème du genre à gérer une fois. En fait pour moi il s'agissait d'une liste d'articles (articles en base), l'utilisateur parcours les articles et quand il en voit un qui l'intéresse il peut le mettre en favori (boolean en base). quand il revient sur l'appli il peut au choix naviguer dans tous les articles ou au contraire n'accéder qu'à ses favoris. Seul ma requête en base change.

 

voir si tu peux adapter cela à ton appli

 

Marc

Lien vers le commentaire
Partager sur d’autres sites

Si je comprends bien tu souhaiterais sauvegarder des données sur l'utilisateur, en l’occurrence ses favoris. Il va falloir que tu regardes du côté du "Data storage"!

 

Si c'était moi, j'utiliserais les "SharedPreferences" pour stocker un booléen pour chacun de tes codes, qui signale si le code est en "favoris" ou non.

 

Un petit lien avec un bel exemple d'utilisation des "SharedPrerences" http://developer.android.com/guide/topics/data/data-storage.html#pref

 

Avec ça tu devrais pouvoir t'en sortir. Si tu as plus de question, n'hésites pas !

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Re, j'ai réussi à faire le onclick, mais je n'arrive pas bien à mettre en place le sharedPreference.

Je dois récupérer tout mes tablelayout ? 

TableLayout code1 = (TableLayout) findViewById((R.id.code1));

Et après je fais un switch / case en fonction du tablayout cliqué ?

 

    @Override
        public void onClick(View v){
            switch(v.getId()){
                case(R.id.code1):


AlertDialog.Builder alert = new AlertDialog.Builder(Vehicules.this);
                    alert.setTitle("Favoris");
                    alert.setMessage("Ajouter ce code aux favoris ?");
                    //alert.setIcon(R.drawable.icon);
                    alert.setPositiveButton("Oui",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int id) {


                                    //Creating Instance of SharedPreferences
                                    SharedPreferences sp = getSharedPreferences(MY_PREF, 0);


                                    //Getting the Editor
                                    SharedPreferences.Editor edit = sp.edit();


                                    //Modifying Editor


                                    edit.putBoolean("code1",true);


                                    //Save the Editor value
                                    edit.commit();


                                }
                            });
                    alert.setNegativeButton("Annuler",null);


                    alert.show();
            }

Merci encore de m'aider ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Le switch/case me paraît un peu "too much", tu vas te retrouver avec du code dupliqué à foison; tu peux facilement factoriser le code d'enregistrement d'un favori, la seule partie variable étant l'id du layout sélectionné...

Lien vers le commentaire
Partager sur d’autres sites

En effet , pour le switch case ça va me faire beaucoup de code , mais au niveau du shared préférence je ne vois pas comment faire ... J'ai essayé comme si dessus mais ça ne fonctionne pas .

Je ne vois pas trop plus comment le reafficher dans mon activity "favoris" .

Merci ;-)

Lien vers le commentaire
Partager sur d’autres sites

Pour l'enregistrement dans le SharedPreference, tu peux faire quelque chose comme ça (dans le listener de validation)

  SharedPreferences sp = getSharedPreferences(MY_PREF, 0);
  SharedPreferences.Editor edit = sp.edit();
 
  sp.putBoolean(getResources().getResourceEntryName(v.getId()), true);
 
  sp.commit();

Si tu enregistres ce listener pour chacun de tes layouts, cela enregistrera un boolean dans le SharedPreferences sous la clef correspondant au nom de l'id du layout; et ce, sans avoir à dupliquer ton code pour chaque layout

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...