Android - 保存并更新从一个活动发送到另一个活动的字符串

时间:2017-12-14 20:11:29

标签: java android

//我可以在一个意图

中发送和接收两个不同的值
@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 将始终显示。

1 个答案:

答案 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();