如何保存一个Android CheckBox的状态,当用户退出应用程序?应用程序、状态、用户、Android

2023-09-13 00:54:33 作者:难拥友i

有没有办法通过它我可以节省我的复选框状态(选中或取消选中),当用户退出应用程序,这样我可以重新加载此状态下,当应用程序重新启动?

  @覆盖
公共无效的onPause()
{

    super.onPause();
    保存(itemChecked);
}
@覆盖
公共无效onResume()
{
    super.onResume();
    checkOld =负载();

    的for(int i = 0; I< checkOld.length;我++)
    {
        notes.ctv.get(我).setChecked(checkOld [I]);
    }
}
@覆盖
公共无效onRestart()
{
    super.onResume();
    checkOld =负载();

    的for(int i = 0; I< checkOld.length;我++)
    {
        notes.ctv.get(我).setChecked(checkOld [I]);
    }
}

私人无效保存(最终布尔[]器isChecked){
共享preferences共享preferences = GET preferences(Context.MODE_PRIVATE);
共享preferences.Editor编辑=共享preferences.edit();
 insertState();
 对于(整数i = 0; I< isChecked.length;我++)
 {
     editor.putBoolean(i.toString(),器isChecked [I]);
 }
editor.commit();
}

私人布尔[]负载(){
共享preferences共享preferences = GET preferences(Context.MODE_PRIVATE);
    布尔[] =复查新的布尔[itemChecked.length]
    对于(整数i = 0; I< itemChecked.length;我++)
    {
         复核[我] =共享preferences.getBoolean(i.toString(),FALSE);
    }
    返回复核;
}
 

解决方案

联合的onPause() onResume()保存和加载你的复选框值。

样品code:

  @覆盖
公共无效的onPause(){
    super.onPause();
    保存(mCheckBox.isChecked());
}

@覆盖
公共无效onResume(){
    super.onResume();
    mCheckBox.setChecked(负载());
}

私人无效保存(最终布尔器isChecked){
    共享preferences共享preferences = GET preferences(Context.MODE_PRIVATE);
    共享preferences.Editor编辑=共享preferences.edit();
    editor.putBoolean(检查,器isChecked);
    editor.commit();
}

私人布尔负载(){
    共享preferences共享preferences = GET preferences(Context.MODE_PRIVATE);
    返回共享preferences.getBoolean(检查,假);
}
 
android checkbox 对话框,Android之复选框对话框用法实例分析

Is there any way by which I can save the state of my checkboxes (checked or unchecked) when user exits the application so that I can reload this state when the application restarts?

@Override
public void onPause()
{

    super.onPause();
    save(itemChecked);
}
@Override
public void onResume()
{
    super.onResume();
    checkOld = load();

    for (int i = 0 ; i < checkOld.length; i++)
    {
        notes.ctv.get(i).setChecked(checkOld[i]);
    }
}
@Override
public void onRestart()
{
    super.onResume();
    checkOld = load();

    for (int i = 0 ; i < checkOld.length; i++)
    {
        notes.ctv.get(i).setChecked(checkOld[i]);
    }
}

private void save(final boolean[] isChecked) {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
 insertState();
 for(Integer i = 0; i < isChecked.length; i++)
 {
     editor.putBoolean(i.toString(), isChecked[i]);
 }
editor.commit();
}

private boolean[] load() {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    boolean [] reChecked = new boolean[itemChecked.length];
    for(Integer i = 0; i < itemChecked.length; i++)
    {
         reChecked[i] = sharedPreferences.getBoolean(i.toString(), false);
    }
    return reChecked;
}

解决方案

Combine onPause() and onResume() to save and load your CheckBox value.

Sample code:

@Override
public void onPause() {
    super.onPause();
    save(mCheckBox.isChecked());
}

@Override
public void onResume() {
    super.onResume();
    mCheckBox.setChecked(load());
}

private void save(final boolean isChecked) {
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putBoolean("check", isChecked);
    editor.commit();
}

private boolean load() { 
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    return sharedPreferences.getBoolean("check", false);
}

 
精彩推荐
图片推荐