如何更新共享首选项数据
问题描述:
我想设置应用主题的共享首选项 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方法只需要一个字符串名称来制作首选项文件 –