91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android switch 怎樣保存狀態

小樊
85
2024-06-15 13:15:32
欄目: 編程語言

在Android中,可以通過以下幾種方式來保存和恢復Switch的狀態:

  1. 使用SharedPreferences:可以將Switch的狀態保存在SharedPreferences中,然后在需要的時候從SharedPreferences中讀取狀態。例如:
SharedPreferences preferences = getSharedPreferences("switch_state", Context.MODE_PRIVATE);
boolean switchState = preferences.getBoolean("switch", false);

Switch switchButton = findViewById(R.id.switchButton);
switchButton.setChecked(switchState);

switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean("switch", isChecked);
        editor.apply();
    }
});
  1. 使用Bundle:可以在Activity的onSaveInstanceState方法中保存Switch的狀態,并在onRestoreInstanceState方法中恢復狀態。例如:
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putBoolean("switch", switchButton.isChecked());
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    boolean switchState = savedInstanceState.getBoolean("switch");
    switchButton.setChecked(switchState);
}
  1. 使用ViewModel:可以使用ViewModel來保存Switch的狀態,確保在屏幕旋轉等情況下狀態不會丟失。例如:
public class SwitchViewModel extends ViewModel {
    private MutableLiveData<Boolean> switchState = new MutableLiveData<>();

    public void setSwitchState(boolean state) {
        switchState.setValue(state);
    }

    public LiveData<Boolean> getSwitchState() {
        return switchState;
    }
}

SwitchViewModel switchViewModel = new ViewModelProvider(this).get(SwitchViewModel.class);

switchViewModel.getSwitchState().observe(this, new Observer<Boolean>() {
    @Override
    public void onChanged(Boolean state) {
        switchButton.setChecked(state);
    }
});

switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        switchViewModel.setSwitchState(isChecked);
    }
});

通過以上方式,可以在Android應用中保存和恢復Switch的狀態。根據具體情況選擇合適的方式來實現狀態保存和恢復。

0
临邑县| 松江区| 喜德县| 搜索| 汝南县| 彭山县| 海兴县| 瑞安市| 日土县| 兰州市| 江永县| 安溪县| 台东县| 宜良县| 安多县| 和林格尔县| 绥宁县| 九台市| 玉山县| 荆门市| 平乡县| 广宗县| 淳安县| 梅河口市| 通山县| 雅安市| 丰台区| 福建省| 茶陵县| 岑溪市| 象州县| 孟州市| 荆州市| 宣化县| 侯马市| 平凉市| 六盘水市| 额尔古纳市| 突泉县| 阳朔县| 大安市|