2013-07-16 3 views
0

Je souhaite accéder à SharedPref à l'intérieur de getView de mon adaptateur. Je reçois une erreur sur MODE_PRIVATE = `MODE_PRIVATE ne peut être résolu à une variable »Android - SharedPreferences dans l'adaptateur getView

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);

je fixe ceci en faisant mContext.MODE_PRIVATE, mais je reçois une erreur sur getPreferences = getPreferences (int) est définie. Comment puis-je réparer cela?

Modifier

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if(convertView == null) { 
      convertView = mInflator.inflate(R.layout.griditemlayout, parent, false); 
     } 
     TextView gridtv; 
     gridtv = (TextView) convertView.findViewById(R.list.gridtext); 


     SharedPreferences sP = ((Object) mContext).getPreferences(mContext.MODE_PRIVATE); 
     Boolean b = sP.getBoolean(s[position], false); 

     ... 

     return convertView; 
    } 
+0

pouvez-vous envoyer ce que vous avez dans la méthode getview? – intrepidkarthi

+0

voir edit ci-dessus ... –

+0

OKay J'ai importé 'import statique android.content.Context.MODE_PRIVATE', mais j'obtiens une erreur sur getPreferences =' undefined' –

Répondre

0

Cette erreur est parce que vous rejetterai Context la méthode Object et Object n'a pas getPreferences. Essayez d'utiliser juste le contexte.

UPD: j'étais un peu mal, essayez d'utiliser Activity référence au lieu de Context

+0

Je l'ai changé en 'mContext.getPreferences ...' et maintenant je get this error 'La méthode getPreferences (int) est indéfinie pour le type Context' –

+0

Je l'ai changé en Activity, et j'ai toujours la même erreur:' La méthode getPreferences (int) est indéfinie pour le type Tab01_FavAdapter' –

+0

alors maintenant vous avoir quelque chose comme ça 'Activity act = (Activité) mContext; act.getPreferences (int); 'et ça ne marche pas? – Desert

0

Vous Contexte La diffusion d'mContext dans un objet, qui ne contient pas la méthode getPreferences(). Une fois le problème de conversion résolu, importez la référence de contexte et essayez d'utiliser simplement getPreferences (Context.MODE_PRIVATE).

+0

Voici ce que j'ai: 'SharedPreferences sP = getPreferences (Context.MODE_PRIVATE);' avec l'importation Context et j'obtiens une erreur sur 'getPreferences' - l'erreur est:' La méthode getPreferences (int) est indéfinie pour le type Tab01_FavAdapter' –

+0

@ user1873880 est actuellement sur la bonne voie avec sa réponse. getPreferences() est une méthode de la classe Activity et vous devez obtenir une référence à l'activité dans laquelle votre classe d'adaptateur est utilisée. Pour obtenir l'objet Activity, vous devez probablement l'inclure en tant qu'argument dans le constructeur de votre adaptateur. – Brian

0

Première utilisation Contexte au lieu de ((Object) mContext). Appelez votre adaptateur par contexte Utilisez la valeur entière 1 au lieu de MODE_PRIVATE