为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 android 中使用 SharedPreferences 从 PhotoView

如何在 android 中使用 SharedPreferences 从 PhotoView

慕哥6287543 2022-06-04 09:09:20
我正在创建一个 android 应用程序,我正在根据编号显示可绘制文件夹中的图像,我的活动开始显示编号 1 的图像,并且我正在使用按钮显示下一张或上一张图像。我正在尝试保存使用共享首选项按下后退按钮时用户正在查看的图像的值。我的代码看起来像这样private int currentPage = 1; @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_read);        final Button btnNext = findViewById(R.id.btnNext);        final Button btnBack = findViewById(R.id.btnBack);listOfObjects = getResources().getStringArray(R.array.object_array);        images = getResources().obtainTypedArray(R.array.object_image);        itemImage = (ImageView)findViewById(R.id.imgSpace);        final Spinner spinner = (Spinner)findViewById(R.id.spinner);        ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,R.layout.my_spinner, listOfObjects);;        spinnerAdapter.setDropDownViewResource(R.layout.my_spinner);        spinner.setAdapter(spinnerAdapter);        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                itemImage.setImageResource(images.getResourceId(spinner.getSelectedItemPosition(), -1));            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });   currentPage是我想在按下后退按钮或转到任何其他活动后保存的变量,如果用户最小化应用程序,我想将它传递给主活动以显示恢复活动的额外按钮并显示当用户单击恢复活动按钮时,用户在按下后退按钮之前看到的确切图像。我正在使用 Chris Banes 的照片视图来显示图像。我知道如何在 PHP 中传递变量和等,但是 android 对我来说是新的。任何帮助,将不胜感激。
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

SharedPreferences prefs = getSharedPreferences("nameOfSharedPreference", MODE_PRIVATE);

SharedPreferences.Editor editor = getSharedPreferences("nameOfSharedPreference", MODE_PRIVATE).edit();

editor.putInt("image", R.imageID).commit();


@Override

onBackPressed(){

    image = prefs.getInt("image", defaultValue)  //Default value is taken if the pref doesn't exist yet

}

按下手机后退按钮时,android会自动调用onBackPressed()。你可以手动调用它:onBackPressed();


查看完整回答
反对 回复 2022-06-04
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

我不完全理解这个问题,但你可以写:


SharedPreferences prefs = getSharedPreferences("nameOFPref", MODE_PRIVATE);

private int currentPage = prefs.getInt("image", 1);

它的工作方式是在“image”部分的 nameOfPref 中保存一个文件,以便在程序启动时将其取回。在这里,我们将 1 作为默认值,因此在您第一次启动程序时将采用 1。你应该写:


SharedPreferences.Editor editor =    getSharedPreferences("nameOfSharedPreference", MODE_PRIVATE).edit();

editor.putInt("image", idOFImageCurrentlyVIewed).commit();

以后在程序中每次用户更改图像时。因此,它将更改首选项,并确保在您启动程序时返回 currentImage 将采用正确的值。在 android studio 中,您可以查看模拟手机的文件系统。对于首选项,您需要进入 Android/data/com.yourPackageName/preferences 如果一切顺利,您应该在那里看到您的文件。


查看完整回答
反对 回复 2022-06-04
  • 2 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号