salih
salih

Reputation: 725

Save CheckBox state in app

I have checkbox in my android app. My checkbox is checked when app's first run. What if user disable checkbox? I don't want to save preferences in my app.

Every time isChecked is true for my arrangement. After user change checkbox How can I save the state of the checkbox?

xml:

<CheckBox
    android:id="@+id/remember_me"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#FF297AA6"
    android:checked="true"
    android:textColor="@android:color/white" />

Here my activity code - Always isChecked true from my xml;

if (mCheckBox.isChecked()) {
    remembername = preferences.getString("user", "");
    rememberpassword = preferences.getString("pasword", "");
    user.setText(remembername);
    parola.setText(rememberpassword);
}

Upvotes: 0

Views: 532

Answers (1)

Karan Maru
Karan Maru

Reputation: 1001

Add below code in your checkbox onclick method :

SharedPreferences.Editor editor = this.getPreferences(0).edit();
if(cbRememberMe.isChecked()){ 
    checkPreference = true;
    editor.putString("savename", etUserName.getText().toString().trim());
    editor.putString("savepassword", etPassword.getText().toString().trim());
    editor.putBoolean("check", checkPreference);
    editor.commit();
    Log.i("Remember Me", "checked,preference added");
}
else{
    checkPreference = false;
    editor.putString("savename", "");
    editor.putString("savepassword", "");
    editor.putBoolean("check", checkPreference);
    editor.commit();
    Log.i("Remember Me", "Unchecked, preferences removed");
}

In your onCreate() method, write below lines:

SharedPreferences prefs = this.getPreferences(0);
strUserName = prefs.getString("savename", null);
if (strUserName != null) {
    etUserName.setText(strUserName);
}
strPassword = prefs.getString("savepassword", null);
if (strPassword != null) {
    etPassword.setText(strPassword);
}
rememberMe = prefs.getBoolean("check", true);  
if (rememberMe == true) {
    cbRememberMe.setChecked(true);  
}

Upvotes: 1

Related Questions