如何在Android中检查存在的首选项

时间:2017-05-14 17:07:12

标签: android sharedpreferences android-sharedpreferences

在我的应用程序中,我想保存一些数据,我希望将这些数据保存到SharedPrefernces 对于这个问题,我创建了一个类,并将以下代码写入此类:

public class SharedPrefrencesHandler {
    private Context context;

    public SharedPrefrencesHandler(Context context) {
        this.context = context;
    }

    public void setToShared(String key, String value) {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString(key, value);
        editor.apply();
    }

    public String getFromShared(String key) {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        String value = preferences.getString(key, "");
        return value;
    }
}

使用以下代码,我检查不是空editTexts,将此文本保存到preferences类:

            if (!TextUtils.isEmpty(loginEdtTxts.get(0).getText().toString()) &&
                    !TextUtils.isEmpty(loginEdtTxts.get(1).getText().toString())) {
                usernameStr = loginEdtTxts.get(0).getText().toString();
                passwordStr = loginEdtTxts.get(1).getText().toString();

                prefrencesHandler.setToShared(SharedPrefrencesKeys.USERNAME.name(), usernameStr);
                prefrencesHandler.setToShared(SharedPrefrencesKeys.PASSWORD.name(), passwordStr);

我想要 mainActivity ,首先检查此preferences,如果存在数据(在用户保存之前)显示确定 toast,则不存在显示错误 toast

我怎么能?

2 个答案:

答案 0 :(得分:0)

使用preferences.getString(key, null)==null检查密钥是否存在。

答案 1 :(得分:0)

试试这段代码:

String prefUserName = prefrencesHandler.getFromShared(SharedPrefrencesKeys.USERNAME.name());
String prefPassword = prefrencesHandler.getFromShared(SharedPrefrencesKeys.PASSWORD.name());
    if (!TextUtils.isEmpty(prefUserName) && !TextUtils.isEmpty(prefPassword)) {
        // Ok code
    } else {
       // Err code
}

我希望能帮到你