Как использовать Shared Preferences без расширения AppCompatActivity для класса? - PullRequest
0 голосов
/ 13 февраля 2020

Мне нужно использовать общие настройки в моем классе, но когда я использую метод getSharedPreferences, он говорит: «Не удается разрешить метод» getSharedPreferences (java .lang.String, int) '. Вот код:


public class FetchData extends AsyncTask<Void, Void, Void> {

    String data = "";



    @Override
    protected Void doInBackground(Void... voids) {
        try {
            URL url = new URL("https://api.jsonbin.io/b/5e42776dd18e4016617690ce/3");
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line = "";
            while (line != null) {
                line = bufferedReader.readLine();
                data = data + line;
            }



            JSONArray JA = new JSONArray(data);

SharedPreferences sharedPreferences = getSharedPreferences("SHARED_PREFS", Context.MODE_PRIVATE); // THE ERROR
            SharedPreferences.Editor editor = sharedPreferences.edit();

//            for(int i =0 ;i < JA.length(); i++) {
//                JSONObject JO = (JSONObject) JA.get(i);
//                singleParsed =
//                        "id: " + JO.get("id") + "\n" +
//                      "img: " + JO.get("img") + "\n" +
//                        "w1: " + JO.get("w1") + "\n" +
//                        "w2: " + JO.get("w2") + "\n" +
//                        "w3: " + JO.get("w3") + "\n" +
//                        "w4: " + JO.get("w4") + "\n";
//
//                dataParsed = dataParsed + singleParsed + "\n";
//
//            }

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Вы должны сделать так,

 public class FetchData extends AsyncTask<Void, Void, Void> {

    String data = "";
    Context context;

    FetchData (Context context){
     this.context = context;
    }

 }

и

      SharedPreferences sharedPreferences = context.getSharedPreferences("SHARED_PREFS", Context.MODE_PRIVATE);
0 голосов
/ 13 февраля 2020

Вы можете использовать библиотеку GitHub для sharePrefrence, вот ссылка - Библиотека EasyPrefs

Эта библиотека предоставляет вам функции SharedPreference.

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