Search code examples
androidandroid-fragmentsandroid-preferencesandroid-dialogandroid-dialogfragment

How to set a default value to SharedPreferences programmatically?


I am using SharedPreferences to keep the information about user's weight, which I need in my application. The problem is, how to set a default value (eg. 75 kg) automatically after installation? I know how to do it via .xml, but how to do this programmatically?

My code:

public class SettingsDialogFragment extends DialogFragment{

public static final String PREFS_NAME = "settings";
public Dialog onCreateDialog(Bundle savedInstanceState) {


builder.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {

                Data.weight = weight;
                SharedPreferences prefs = getActivity().getSharedPreferences(PREFS_NAME, 0);
                Editor editor = prefs.edit();
                editor.putInt("key_weight", weight);
                editor.commit();
                Data.ifMale = ifMale;
                checkedRadio = rg.getCheckedRadioButtonId();
                System.out.println("numer radio" +checkedRadio);
            }
            });
return builder.create();
    }
}

Solution

  • Try this way, please.

            SharedPreferences prefs = getActivity().getSharedPreferences(
                    PREFS_NAME, 0);
            if (prefs.getInt("key_weight", null) == null) {
                Editor editor = prefs.edit();
                editor.putInt("key_weight", 75);
                editor.commit();
            }
    

    For first time use this, or else use your code only(means without if condition).