Pytanie w sprawie android, checkbox – Zapisywanie stanów pola wyboru

4

Jestem bardzo nowy i doceniłbym, gdyby ktoś mógł zademonstrować kod wymagany do zapisania wielu stanów pola wyboru w Javie wewnątrz aplikacji dla systemu Android.

Powiedzmy, że mam listę narzędzi (dziesięć lub więcej), których użytkownik potrzebuje do wykonania zadania i chciałby, aby były w stanie sprawdzić każdą z nich i aby te dane były zapisane (w aplikacji, a nie sQlite), aby były rejestrowane, gdy wracają do aplikacji.

Mam pewne pojęcie o tym, jak to zrobić, ale naprawdę czuję, że muszę zobaczyć kod, aby poprawnie zrozumieć.

<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>
rozwiązałem twój problem Shankar Agarwal

Twoja odpowiedź

2   odpowiedź
0

Hi próbowałem powyżej, ale po ponownym uruchomieniu lub ponownym uruchomieniu urządzenia z Androidem, straciłbym sprawdzony stan menu opcji. Powiedziałbym, że aby rozwiązać problem:

Masz 2 opcje:

Uzyskaj współdzieloną wartość preferencji podczas cyklu życia działania.

Połączenie.clear przed.commit

Zobacz moją odpowiedź:

Android Persistent Checkable Menu w Custom Widget Po ponownym uruchomieniu systemu Android

11

Użyj poniższego kodu, aby zapisać i ponownie zapisać dane w SharedPreference. Zapisz każde pole wyboru w polu SharedPreference

// Aby uzyskać wartość z SharedPreference

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

// Aby zapisać wartość w SharedPreference

<code>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();
</code>

spójrz na to kilka drobnych zmian ::::

<code>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;
            }

        }
        }
</code>
Genialne, wielkie dzięki za twoją pomoc i cierpliwość. Wiele jeszcze do zrobienia, ale to była dla mnie ogromna pomoc, teraz widzę, co się dzieje. DarkLion

Powiązane pytania