Почему я не могу использовать getBaseContext () здесь? - PullRequest
1 голос
/ 21 декабря 2011

Я хочу попробовать получить какое-то значение из моих настроек, используя следующий код:

import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.content.*;
public class TCPdumpHandler {

    public void getPreference() {

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        Boolean checkboxPreference = prefs.getBoolean("checkboxPref", true);
    }
}

Но ошибка: The method getBaseContext() is undefined for the type TCPdumpHandler

Можете ли вы сказать мне причину?

Ответы [ 2 ]

5 голосов
/ 21 декабря 2011

Потому что TCPdumphandler не распространяется на активность. getBaseContext() - метод этого класса (технически, класса ContextWrapper). Вам необходимо передать контекст конструктору TCPdumphandler.

0 голосов
/ 21 декабря 2011

Методы getContext () могут вызываться только из классов, расширяющих Activity и Services (и, но я не уверен, Application). Чтобы использовать контекст в других классах, вы должны передать контекст в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...