gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:10 24 4
gpt4 key购买 nike

我需要一些帮助来将 SharedPreferences 与我选择的 getPhotos 结合起来。我是 SharedPreferences 的新手,有点不明白它是如何工作的。

所以我做了一个 SharedPreferencesManager:

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);
}
}

我想要做的是将所有选定的照片存储在共享首选项中,以便每次我打开 Glide 时它都会显示所有选定的照片。但它不喜欢 imageUri = prefManager.getPhotos());

public class PhotosGallery extends AppCompatActivity {

// Used to show glide load image.
ImageView photoGallery;
Uri imageUri;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photos_gallery);

SharedPreferencesManager prefManager = SharedPreferencesManager.getInstance(PhotosGallery.this);

photoGallery = findViewById(R.id.photo_gallery);

if (getIntent() != null) {
imageUri = prefManager.getPhotos());
Glide.with(PhotosGallery.this).load(imageUri).into(photoGallery);
}else{
Toast.makeText(PhotosGallery.this, "There are no images displayed", Toast.LENGTH_LONG).show();
}


}
}

我可以在重构 SharedPreferences 方面获得一些帮助吗?

最佳答案

看看你的方法:

public void getPhotos(){
sharedPrefs.getInt(PICK_IMAGE_MULTIPLE, 0);
}

void - 表示不返回任何内容
int - 意味着您从首选项中读取了一个 int 值,但同样,您将其分配给任何内容。

通常,要从首选项获取号码,您应该编写如下内容:

int myNumber = sharedPrefs.getInt(NAME, 0);

如果你想在方法中使用它,那么,你应该:

public int getMyNumberFromPrefs(){
return sharedPrefs.getInt(NAME, 0);
}

然后在其他地方:

int myNumber = prefManager.getMyNumberFromPrefs();

但是,如果您从首选项中读取 int 数字,则无法将其分配给 Uri 类型变量。

因此,您需要在首选项中存储一个字符串变量,然后从字符串中解析 Uri...

但这需要学习和练习一整章。

关于java - 如何使用 SharedPreferences 检索已选择的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com