//在一个acitivity中监听一个listview
public void expressitemClick(int position) {
if (position == 0) {
//存储一个boolean值为了让MainActivity分情况操作
SharedPreferences mSharedPreferences = getSharedPreferences("modle", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putBoolean("modle", true);
editor.commit();
//起刷新作用,刷新MainActivity
Intent intent = new Intent(OptionSetting.this,MainActivity.class);
startActivity(intent);
finish();
}
if (position == 1) {
//存储一个boolean值为了让MainActivity分情况操作
SharedPreferences mSharedPreferences = getSharedPreferences("MODLE", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putBoolean("model",false);
editor.commit();
//起刷新作用,刷新MainActivity
Intent intent = new Intent(OptionSetting.this,MainActivity.class);
startActivity(intent);
finish();
}
}
在MainActivity中取值:
SharedPreferences modle = getSharedPreferences("MODLE", Context.MODE_PRIVATE);
boolean x = modle.getBoolean("modle", true);
Log.v("我是boolean", " " + x);
打印结果是无论在listview中选取哪个选项,打印的全是默认值true ,求解决
getSharedPreferences("modle", Context.MODE_PRIVATE);
_首先这里的modle都应该写成大写的
然后在你的if (position == 1) {}里面打印日志,看看是否执行了这里面
if (position == 1) 或者if (position == 0) 里面的getSharedPreferences("modle", Context.MODE_PRIVATE);
_如果写的MODLE大小写不一致,那你将创建了两个SharedPreferences文件,他们一个名为modle,一个名为MODLE