如何以编程方式将默认值设置为SharedPreferences?

时间:2014-11-05 19:23:12

标签: android android-fragments android-preferences android-dialog android-dialogfragment

我正在使用SharedPreferences来保存有关用户体重的信息,这在我的应用程序中是我需要的。问题是,如何在安装后自动设置默认值(例如75 kg)?我知道如何通过.xml来做,但是如何以编程方式执行此操作?

我的代码:

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();
    }
}

2 个答案:

答案 0 :(得分:3)

请尝试这种方式。

        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();
        }

第一次使用它,或者只使用你的代码(没有条件的意思)。

答案 1 :(得分:0)

getInt采用默认值。

prefs.getInt("key_weight", 75)

或者更主流的风格......

public class AppPreferences {

    private SharedPreferences mPreferences;

    Public AppPreferences(SharedPreferences preferences)
    {
         this.mPreferences = preferences;
    }

    private static final String KEY_WEIGHT_KEY = "key_weight";
    private static final int DEFAULT_KEY_WEIGHT = 75;

    public static  int getKeyWeight()
    {
      return mPreferences.getInt(KEY_WEIGHT_KEY,DEFAULT_KEY_WEIGHT);

    }
}