私はスイッチを宣言し、ID でそれを見つけていましたが、うまくいきませんでした。代わりに、SharedPreferenceManager を使用boolean
してバンドルに追加する必要がありました。
@Override
public void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
SharedPreferences mSharedPreferencesManager = PreferenceManager.getDefaultSharedPreferences(this);
vibeBlock = mSharedPreferencesManager.getBoolean("vibration_checkbox", false);
savedInstanceState.putBoolean("myBoolean", vibeBlock);
}
それboolean
はバンドルに入れるのに役立ちました。MainActivity でそれを引き出す方法は次のとおりです。
@Override
public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
hideVibe = savedInstanceState.getBoolean("myBoolean");
}
これも追加しました:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate();
(Creation code)
SharedPreferences mSharedPreferencesManager = PreferenceManager.getDefaultSharedPreferences(this);
hideVibe = mSharedPreferencesManager.getBoolean("vibration_checkbox", false);
if (hideVibe) {
switchConv.setVisibility(View.GONE);
} else if (!hideVibe) {
switchConv.setVisibility(View.VISIBLE);
}
}
そしてこれも:
@Override
protected void onResume() {
super.onResume();
SharedPreferences mSharedPreferencesManager = PreferenceManager.getDefaultSharedPreferences(this);
hideVibe = mSharedPreferencesManager.getBoolean("vibration_checkbox", false);
if (hideVibe) {
switchConv.setVisibility(View.GONE);
} else if (!hideVibe) {
switchConv.setVisibility(View.VISIBLE);
}
}
そして、それはトリックをしました:)