亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 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 關注
  • 68 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號