3 つのアクティビティを持つタブホストがあり、各アクティビティのボタンの押された状態を保存したい
では、3 つの子アクティビティすべての各ボタンの押された状態を保存して、あるアクティビティから別のアクティビティに移動したときに、ボタンの押された状態が戻るときに反映されるようにするにはどうすればよいでしょうか。最初のアクティビティ -> 4 つのボタンすべてが押された -> 2 番目のアクティビティに移動 -> 最初のアクティビティに戻る -> 最初のアクティビティのすべてのボタンが押された状態である必要があります
2番目の子タブに移動して最初の子タブに来ると、変更が反映されていません(押したボタンが押された状態ではありません)
ヘルプはいつでも大歓迎です、ありがとう
これは最初のタブホスト子アクティビティの私のコードです
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
seatdirnbtn.setOnClickListener(listner1);
seatdirnbtn1.setOnClickListener(listner2);
seatdirnbtn.setPressed(true);
seatdirnbtn1.setPressed(true);
this.LoadPreferences();
}
private void SavePreferences() {
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("sharedPreferences",MODE_WORLD_READABLE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("state", seatdirnbtn.isEnabled());
editor.putBoolean("state1", seatdirnbtn1.isEnabled());
editor.commit();
}
private void LoadPreferences() {
SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("sharedPreferences",MODE_WORLD_READABLE);
Boolean state = sharedPreferences.getBoolean("state", false);
Boolean state1 = sharedPreferences.getBoolean("state1", false);
seatdirnbtn.setPressed(state);
seatdirnbtn1.setPressed(state1);
}
@Override
protected void onStart() {
super.onStart();
LoadPreferences();
}
@Override
protected void onPause() {
SavePreferences();
super.onPause();
}
public static boolean isclick = false;
private View.OnClickListener listner1 = new View.OnClickListener() {
public void onClick(View v) {
if (isclick) {
seatdirnbtn.setBackgroundResource(R.drawable.icon4hlt);
} else {
seatdirnbtn.setBackgroundResource(R.drawable.icon4);
}
isclick = !isclick;
}
};
private View.OnClickListener listner2 = new View.OnClickListener() {
public void onClick(View v) {
if (isclick) {
seatdirnbtn1.setBackgroundResource(R.drawable.icon2hlt);
} else {
seatdirnbtn1.setBackgroundResource(R.drawable.icon2);
}
isclick = !isclick;
}
};