我希望能够将SharedPreferences与我选择的getPhotos结合在一起使用。我是SharedPreferences的新手,有点不了解它是如何工作的。
所以我做了一个SharedPreferencesManager:
{"data":{"field1":"d","field2":"d","field3":["d"],"field4":["d"],"field5":["d"],"field6":"d","field7":"d"}}
我要做的是将所有选择的照片保存在共享的首选项中,以便每次我打开Glide时都会显示所有选择的照片。但它不喜欢public class SharedPreferencesManager {
private static final String APP_PREFS = "AppPrefsFile";
private static final String PICK_IMAGE_MULTIPLE = "PickImageMultiple";
private SharedPreferences sharedPrefs;
private static SharedPreferencesManager instance;
private SharedPreferencesManager(Context context) {
sharedPrefs = context.getApplicationContext().getSharedPreferences(APP_PREFS, MODE_PRIVATE);
}
public static synchronized SharedPreferencesManager getInstance(Context context){
if(instance == null)
instance = new SharedPreferencesManager(context);
return instance;
}
/* public int increaseClickCount() {
int clickCount = sharedPrefs.getInt(NUMBER_OF_CLICKS, 0);
clickCount++;
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putInt(NUMBER_OF_CLICKS, clickCount);
editor.apply();
return clickCount;
} */
public void putPhotos() {
Intent intent = new Intent();
intent.setType("image/*");
//intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.apply();
}
public void getPhotos(){
sharedPrefs.getInt(PICK_IMAGE_MULTIPLE, 0);
}
}
imageUri = prefManager.getPhotos());
请问在重构SharedPreferences方面有什么帮助吗?
答案 0 :(得分:0)
看看您的方法:
public void getPhotos(){
sharedPrefs.getInt(PICK_IMAGE_MULTIPLE, 0);
}
void
-表示不返回任何内容
int-表示您从prefs读取了一个int值,但再次将其分配为空。
通常,要从偏好中获取一个数字,您应该编写类似以下内容的
:int myNumber = sharedPrefs.getInt(NAME, 0);
如果要在方法中使用它,则应该是:
public int getMyNumberFromPrefs(){
return sharedPrefs.getInt(NAME, 0);
}
,然后在其他地方:
int myNumber = prefManager.getMyNumberFromPrefs();
但是,如果您从首选项中读取一个int编号,则无法将其分配给Uri类型变量。
因此,您需要在自己的首选项中存储一个String变量,然后从String中解析Uri。...
但这是整个学习和实践的章节。