如何在按钮上保存实例状态?

时间:2018-11-19 03:21:49

标签: onsaveinstancestate

我没有关于转换的经验。 我在“活动A”中有声音打开按钮,当我按下它时,声音将关闭,并且图像按钮也将变为关闭图像。当时,我打算参加活动B,但声音仍然关闭。但是当我返回到活动A时,声音按钮的图像仍然关闭,甚至声音再次播放。

btnSound.setOnClickListener(new onClickListener){
if (media.isPlaying){
    media.pause();
    btnSound.setImageResource(R.drawable.offimage);
  }else{
    media.play();
    btnSound.setImageResource(R.drawable.onimage);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以将状态保存在sharedPrefrences中,请尝试从这段代码(逻辑)中寻求帮助。 变量可能有所不同,但是逻辑对我有用:

SharedPreferences prefs = getSharedPreferences("Your preference name here", MODE_PRIVATE) 


b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                b2.setEnabled(true);
                prefs.edit().putBoolean("b2enabled", true).commit();//saving State here
            }
        });

现在您要使用此状态的地方只需将状态设为。

Boolean b2state= prefs.getBoolean("b2enabled", false); //false is the default value

如果要启用或禁用结果按钮

if (b2state){
b2.enabled(true);
}
else{
b2.enabled(false);
}