【发布时间】:2017-07-03 08:51:12
【问题描述】:
我正在尝试为应用的主题设置共享偏好 MainActivity-> Settings Activity -> Theme fragment 和在主题片段中。我正在显示背景图像,单击它会设置位置,并且该位置将由 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);
}
}
还有其他方法可以更新数据吗? 我期望它如何工作。我在这样的视图寻呼机中显示 当用户单击按钮时它会更新设置活动 但是当我从片段中按下后退按钮时,背景没有得到更新了 sharedpreference 值。
【问题讨论】:
-
分享您用于在 sharedpreferences 中存储数据的代码
-
我假设
"YOUR_PREF_NAME"是一个字符串常量,不应该被引用 -
这个“YOUR_PREF_NAME”没问题,它会正常工作,getSharedPreferences 方法只需要一个字符串名称来制作首选项文件
-
我添加了我如何存储共享首选项的代码
-
无论问题中尝试了什么,并且没有明显的错误。这是一个副本。 stackoverflow.com/questions/3624280/…
标签: android android-activity activity-lifecycle android-sharedpreferences