【发布时间】:2019-01-21 06:59:27
【问题描述】:
简单解释:
放置在一个活动(演练)中的复选框应确定该活动是否在第二次应用启动时再次显示。选中复选框 - 将不再显示活动,应用程序启动应从 MainActivity 开始。这样做的简单技巧是什么?如果使用共享首选项,我是否需要将复选框状态从一个活动传递到另一个活动?我不想使用任何警报框或对话框。
这是我在 Preshow.class(活动)中的 sharedpreferences 尝试:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
final SharedPreferences.Editor editor = preferences.edit();
if(preferences.contains("checked") && preferences.getBoolean("checked", false) == true){
radioButton.setChecked(true);
}else{
radioButton.setChecked(false);
}
radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(radioButton.isChecked()){
editor.putBoolean("isShowOnboarding", true);
editor.apply();
}else {
editor.putBoolean("isShowOnboarding", false);
editor.apply();
}}}
MainActivity 中的代码:
Boolean isShowOnboarding = getSharedPreferences("PREFERENCE", MODE_PRIVATE)
.getBoolean("isShowOnboarding", true);
if (isShowOnboarding) {
//show walkthrough activity
startActivity(new Intent(MainActivity.this, Preshow.class));
finish();
}
【问题讨论】:
-
似乎有什么问题?您应该使用 SharedPreferences 来存储复选框的值,并根据该意图转到您想要的任何活动。
-
在
onCreate中的setContentView()方法之前检查共享首选项值。如果选中下一个活动的使用意图,则继续。 -
@VivekMishra 但我如何检查 Mainactivity 类中的共享首选项。我在另一个活动中定义了复选框侦听器并附加了 sharedpreferences - preshow 类。
-
可以从任何活动中访问共享首选项。
标签: android checkbox sharedpreferences