如何在活动B中保存一个复选框状态,这样当我回到活动A时,它会显示一个合适的响应?
我正在尝试创建一个函数,以便在选中活动B中的复选框状态时,它将返回到A并播放音乐,并且将保存此首选项,以便在应用程序被终止并重新启动时,首选项停留。
答案 0 :(得分:0)
您可以在SharedPreferences中保存布尔值。这里有清楚的解释:http://developer.android.com/training/basics/data-storage/shared-preferences.html
答案 1 :(得分:0)
在活动B上,您需要设置首选项取决于CheckBox
状态
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
SharedPreferences sharedPref = getBaseContext().getSharedPreferences("mypref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("checked", isChecked);
editor.commit();
}
});
在活动A上,您需要获得优先级值,如下所示
SharedPreferences sharedPref = context.getSharedPreferences("mypref", Context.MODE_PRIVATE);
boolean isChecked = sharedPref.getBoolean("checked", false); // false if it's not exist
答案 2 :(得分:0)
在您的活动B中实施OnSharedPreferenceChangeListener并覆盖onSharedPreferenceChanged方法
这是我的代码
@Override
public void onSharedPreferenceChanged(SharedPreferences preferences,String arg1) {
// TODO Auto-generated method stub
preferences = PreferenceManager.getDefaultSharedPreferences(this);
checkbox = preferences.getBoolean("checkbox", false);
if(checkbox){
//Do your stuff here like playing music
Log.d("checkbox", "check enabled");
Intent myIntent = new Intent(ActivityB.this, ActivityA.class);
startActivity(myIntent);
}