Вопрос по checkbox, android – Сохранение состояний флажков

4

Я очень новичок и был бы признателен, если бы кто-то мог продемонстрировать код, необходимый для сохранения ряда состояний флажков в Java внутри приложения Android.

Скажем, у меня есть список инструментов (десять или более), которые необходимы пользователю для выполнения задачи, и он хотел бы, чтобы они могли отмечать каждый из них и сохранять эти данные (в приложении, а не в sQlite), чтобы они записывались при они возвращаются к заявке.

У меня есть представление о том, как это сделать, но я действительно хочу увидеть код, чтобы понять его правильно.

<code>import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.CheckBox;

public class CheckBoxTest extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.checkboxtest);
    CheckBox cb1,cb2,cb3,cb4;

    cb1 = (CheckBox)findViewById(R.id.checkBox1);
    cb2 = (CheckBox)findViewById(R.id.checkBox2);
    cb3 = (CheckBox)findViewById(R.id.checkBox3);
    cb4 = (CheckBox)findViewById(R.id.checkBox4);   
     }
 }
</code>
решил вашу проблему Shankar Agarwal

Ваш Ответ

2   ответа
0

я попробовал выше, но после перезагрузки или перезапуска моего устройства Android, я потерял бы проверенное состояние меню параметров. Я бы сказал, чтобы решить проблему:

У вас есть 2 варианта:

Get shared preference value during the life-cycle of the activity.

Call .clear before .commit

Смотри мой ответ:

Постоянное проверяемое меню Android в пользовательском виджете после перезагрузки Android

11

redPreference. Вы сохраняете каждое состояние флажка в SharedPreference

// Получить значение из SharedPreference

SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
boolean value = preferences.getBoolean("KEY", false);
String value = preferences.getString("KEY");

// Сохранить значение в SharedPreference

SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("KEY", value);
editor.putBoolean("KEY", value);
editor.commit();

посмотрите на это несколько небольших изменений ::::

public class CheckBoxTest extends Activity implements OnCheckedChangeListener {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.favorites_add_button);
            CheckBox cb1,cb2,cb3,cb4;

            cb1 = (CheckBox)findViewById(R.id.checkBox1);
            cb1.setChecked(getFromSP("cb1"));
            cb1.setOnCheckedChangeListener(this);
            cb2 = (CheckBox)findViewById(R.id.checkBox2);
            cb2.setChecked(getFromSP("cb2"));
            cb2.setOnCheckedChangeListener(this);
            cb3 = (CheckBox)findViewById(R.id.checkBox3);
            cb3.setChecked(getFromSP("cb3"));
            cb3.setOnCheckedChangeListener(this);
            cb4 = (CheckBox)findViewById(R.id.checkBox4);
            cb4.setChecked(getFromSP("cb4"));
            cb4.setOnCheckedChangeListener(this);

        }
        private boolean getFromSP(String key){
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        return preferences.getBoolean(key, false);
        }
        private void saveInSp(String key,boolean value){
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean(key, value);
        editor.commit();
        }
        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            // TODO Auto-generated method stub
            switch(buttonView.getId()){
            case R.id.checkBox1:
            saveInSp("cb1",isChecked);
            break;
            case R.id.checkBox2:
            saveInSp("cb2",isChecked);
            break;

            case R.id.checkBox3:
            saveInSp("cb3",isChecked);
            break;

            case R.id.checkBox4:
            saveInSp("cb4",isChecked);
            break;
            }

        }
        }
Error: User Rate Limit Exceeded DarkLion

Похожие вопросы