2017-07-25 5 views
-1

J'essaie d'ajouter des valeurs aux SharedPreferences à partir d'une liste, l'idée est que lorsqu'un utilisateur clique sur un bouton, l'élément de la liste est ajouté à la page des favoris, mais je ne suis pas capable de le faire, je crois que le problème est parce que j'utilise un ListViewAdapter personnalisé, cette listview me permet de glisser un élément de la liste vers la gauche afin qu'il montre le bouton. Like so Je ne peux pas mettre les SharedPreferences à travailler dans cette classe, c'est ce que j'ai:Ajout de valeurs aux SharedPreferences à partir d'un ListViewAdapter personnalisé

public class ListViewAdapter extends BaseSwipeAdapter { 

    ArrayList<HashMap<String, String>> array = TodasAsCategorias.getListaCategorias(); 
    String Designacao, K_PRODUTO; 
    public static final String favoritos = "favoritos"; 

    private Context mContext; 

    public ListViewAdapter(Context mContext) { 
     this.mContext = mContext; 
    } 

    @Override 
    public int getSwipeLayoutResourceId(int position) { 
     return R.id.swipe; 
    } 

    @Override 
    public View generateView(final int position, ViewGroup parent) { 
     final View v = LayoutInflater.from(mContext).inflate(R.layout.list_item_cat, null); 
     SwipeLayout swipeLayout = (SwipeLayout) v.findViewById(getSwipeLayoutResourceId(position)); 
     v.findViewById(R.id.imgBtnFav).setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       Designacao = (array.get(position)).get("Designacao"); 
       K_PRODUTO = (array.get(position)).get("K_PRODUTO"); 
       Toast.makeText(mContext, "Adicionado aos favoritos", Toast.LENGTH_LONG).show(); 

       SharedPreferences.Editor editor = getSharedPreferences(favoritos, MODE_PRIVATE).edit(); 
       editor.putString("Designacao", Designacao); 
       editor.apply(); 

      } 
     }); 

     return v; 
    } 

    /*....*/ 
} 

Il continue à me donner les mêmes erreurs, ne peut pas résoudre la méthode « getSharedPreferences (? Java.lang.String,) 'et ne peut pas résoudre le symbole « MODE_PRIVATE »

vraiment besoin d'aide ici, ne peut pas trouver quoi que ce soit dans le Web pour me aider:/

+0

mettre méthode onClick sous générer –

+0

vue @BasilBattikhi Comment? Hors de la vue générer? – ALBPT

Répondre

1

getSharedPreferences() a besoin d'un contexte à accéder.

mContext.getSharedPreferences 

essayer

SharedPreferences.Editor editor = mContext.getSharedPreferences(favoritos, MODE_PRIVATE).edit(); 
+0

Merci! que je suis bête – ALBPT

1

Essayez de faire

SharedPreferences.Editor editor = mContext.getSharedPreferences(favoritos, Context.MODE_PRIVATE).edit();