如果选中“不再显示”复选框,我的 Activity 就不必再显示,但我不知道如何使其工作。
这是我迄今为止尝试过的:
public class PopUpInfoActivity extends Activity {
static final String PREFS = "preference_file";
@Override
public void onCreate(Bundle state){
super.onCreate(state);
setContentView(R.layout.popupinfo_layout);
CheckBox chk = (CheckBox) findViewById(R.id.dontshow_checkbox);
chk.setChecked(PreferenceManager.getDefaultSharedPreferences(this).getBoolean("value", false));
chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//store isChecked to Preferences
SharedPreferences settings = getSharedPreferences(PREFS,0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("isChecked", false);
PreferenceManager.getDefaultSharedPreferences(PopUpInfoActivity.this).edit().putBoolean("value", isChecked).apply();
}
});
}
这段代码仍然不起作用,因为如果我选中复选框并终止并重新启动应用程序,该 Activity 仍然出现,我怎样才能让它工作?
我非常感谢任何帮助!
最佳答案
使用它来设置复选框值
chk.setChecked(PreferenceManager.getDefaultSharedPreferences(this).getBoolean("value", false));
使用它来获取复选框值。
chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
//store isChecked value in shareprefernce
PreferenceManager.getDefaultSharedPreferences(PopUpInfoActivity.this).edit().putBoolean("value", isChecked).commit();
}
}
);
享受编码的乐趣。
关于java - 如果复选框已被选中,如何存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282021/