如何在不将 AppCompatActivity 扩展到 class 的情况下使用共享首选项?
How to use Shared Preferences without extending AppCompatActivity to the class?
我需要在我的 class 中使用共享首选项,但是当我使用 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";
//
// }
你应该这样做,
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);
您可以将 GitHub 库用于 sharePrefrence 这里是 link - EasyPrefs Library
此库为您提供了 SharedPreference 的功能。
我需要在我的 class 中使用共享首选项,但是当我使用 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";
//
// }
你应该这样做,
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);
您可以将 GitHub 库用于 sharePrefrence 这里是 link - EasyPrefs Library
此库为您提供了 SharedPreference 的功能。