//我可以在一个意图
中发送和接收两个不同的值@Override
public void onBackPressed() {
if(checkBox.isChecked())
{
String trueThumb_check = "checked_thumb";
Intent i = new Intent(getBaseContext(), MainActivity.class);
i.putExtra("trueThumbnail", trueThumb_check);
startActivity(i);
killAc();
}
else
{
Intent i = new Intent(getBaseContext(), MainActivity.class);
i.putExtra("falseThumbnail", "");
startActivity(i);
killAc();
}
}
//然后我收到了不同的值
try {
Intent thumb_check = getIntent();
String thumb_thumb = thumb_check.getStringExtra("trueThumbnail");
if (thumb_thumb.contains("checked_thumb")){
Toast.makeText(MainActivity.this, "checkBox ativo", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "not checkBox", Toast.LENGTH_SHORT).show();
}
} catch (Throwable e) {
e.printStackTrace();
}
//但我无法保存结果。检查复选框时是否需要保存和更新
SharedPreferences sharedPref = getSharedPreferences("ch4an.ytheloader", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("trueThumbnail", thumb_thumb);
editor.commit();
****编辑:**** 每次用户进入 MainActivity 屏幕时,都会保存从首选项活动发送的状态。 也就是说,如果他被保存, Toast 将始终显示。
答案 0 :(得分:0)
我使用布尔因为它更适合你的问题
从活动发送
@Override
public void onBackPressed() {
Intent i = new Intent(getBaseContext(), MainActivity.class);
i.putExtra("thumbnail",checkBox.isChecked());
startActivity(i);
killAc();
}
从其他人那里接受
Boolean isChecked = getIntent().getExtras().getBoolean("thumbnail");
然后保存isChecked
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences();
prefs.edit().putBoolean("isChecked", isChecked).commit();