我想設置應用主題的共享首選項 MainActivity-> Settings Activity - >主題片段和主題片段中。我點擊時顯示背景圖片它會設置位置和位置將被活動接收設置圖像視圖,但事情是當我點擊碎片圖像時,它正在採取新的值,但在設置片段中,我無法獲得更新的值。但在主要活動是越來越更新,但是當我從主活動設置的活動是得到更新。這回來的是,我想如何更新共享首選項數據
@Override
protected void onResume() {
super.onResume();
SharedPreferences settings = getSharedPreferences("YOUR_PREF_NAME", 0);
int snowDensity = settings.getInt("SNOW_DENSITY", 0);
Glide.with(Settings.this).load(img[snowDensity])
.thumbnail(1f)
.fitCenter()
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(imageView);
}
這樣的代碼,我設置的共享偏好
private class MyPagerAdapter extends PagerAdapter {
private int img[] = {R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, R.drawable.img6
};
@Override
public Object instantiateItem(ViewGroup container, final int position) {
ImageView view = new ImageView(getActivity());
Glide.with(getActivity()).load(img[position])
.thumbnail(1f)
.fitCenter()
.error(R.drawable.music)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity().getApplicationContext(), "Ringtone Set" + position, Toast.LENGTH_SHORT).show();
SharedPreferences settings = getActivity().getSharedPreferences("YOUR_PREF_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("SNOW_DENSITY", position);
editor.commit();
}
});
container.addView(view);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return 6;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return (view == object);
}
}
是否有任何其他方式來更新數據。 我如何期待它的工作。我顯示在這種查看尋呼機像這樣當用戶點擊按鈕它更新設置活動但當我按下後退按鈕從片段的背景沒有得到更新無論是共享首選值。
共享您用於在sharedpreferences中存儲數據的代碼 –
我假設'「YOUR_PREF_NAME」'是一個字符串常量,不應該引用 –
這個「YOUR_PREF_NAME」沒有問題,它會正常工作,getSharedPreferences方法只需要一個字符串名稱來製作首選項文件 –