如何使用SharedPreferences检索已选择的照片

时间:2018-06-23 22:06:48

标签: java android

我希望能够将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方面有什么帮助吗?

1 个答案:

答案 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。...

但这是整个学习和实践的章节。