2013-07-16 2 views
0

Я хочу получить доступ к SharedPref внутри getView моего адаптера. Я получаю сообщение об ошибке на MODE_PRIVATE = `MODE_PRIVATE не может быть разрешен к переменной»Android - SharedPreferences внутри адаптера getView

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);

Я установил это, делая mContext.MODE_PRIVATE, но потом я получаю сообщение об ошибке на getPreferences = getPreferences (межд) не определено. Как я могу это исправить?

Редактировать

@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

Можете ли вы опубликовать то, что у вас есть в методе getview? – intrepidkarthi

+0

см. Править выше ... –

+0

OKe Я импортировал 'import static android.content.Context.MODE_PRIVATE', но я получаю сообщение об ошибке getPreferences =' undefined' –

ответ

0

Эта ошибка происходит потому, что вы приводите Context к Object и Object не getPreferences метод. Попробуйте использовать только контекст.

UPD: Я был немного неправильно, попробуйте использовать Activity ссылки вместо Context

+0

Я изменил его на 'mContext.getPreferences ...', и теперь я get this error 'Метод getPreferences (int) не определен для типа Context' –

+0

Я изменил его на Activity, и я все равно получаю ту же ошибку:' Метод getPreferences (int) не определен для типа Tab01_FavAdapter' –

+0

, так что теперь вы есть что-то вроде этого 'Activity act = (Activity) mContext; act.getPreferences (int); 'и это не работает? – Desert

0

Вы произнесение своего mContext контекста в объект, который не содержит в getPreferences() метода. Как только вы исправите проблему кастинга, импортируйте ссылку Context и попробуйте использовать только getPreferences (Context.MODE_PRIVATE).

+0

Это то, что у меня есть: 'SharedPreferences sP = getPreferences (Context.MODE_PRIVATE);' с импортированием контекста и я получаю сообщение об ошибке в 'getPreferences' - ошибка:' Метод getPreferences (int) не определен для типа Tab01_FavAdapter' –

+0

@ user1873880 на самом деле включен правильный путь с его ответом. getPreferences() - это метод класса Activity, и вам нужно получить ссылку на активность, в которой используется ваш класс адаптера. Чтобы получить объект Activity, вам, вероятно, нужно включить его в качестве аргумента в конструктор вашего адаптера. – Brian

0

Первый контекст использования вместо ((объект) mContext). Вызовите своего адаптера по контексту Использовать целочисленное значение 1 вместо MODE_PRIVATE

Смежные вопросы