如果存在共享设置值,如何显示特定设置?

时间:2014-09-21 05:10:23

标签: android sharedpreferences android-settings

我正在尝试为我的应用添加一些API集成,我想添加一种方法来连接或断开我的设置应用。因此,如果共享首选项中不存在令牌,则设置将显示“登录到xxx”,但如果它退出则显示“从xxx注销”。 例如:

<Preference
        android:key="pref_connect_to_xxx"
        android:title="login to xxx" >

          />

但如果令牌存在,我想显示

 <Preference
        android:key="pref_connect_to_xxx"
        android:title="logout from xxx" >

          />

有关如何做到这一点的想法吗?

3 个答案:

答案 0 :(得分:1)

如果我理解了您正在尝试做的事情,那么以下内容应该可以解决您的问题:

if (tokenAlreadySet()) {
    Preference connectToXXX = (Preference) findPreference("pref_connect_to_xxx");
    connectToXXX.setSummary("logout from xxx");
}

答案 1 :(得分:1)

通过按键查找首选项,以编程方式修改摘要,并根据您在SharedPreferences中设置的令牌,在摘要中显示一个或多个文本。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean token = prefs.getInt("token",-1) == -1?false:true;

Preference pref = (Preference) findPreference("pref_connect_to_xxx");                   
           pref.setSummary(token?"Logout":"Login");

答案 2 :(得分:-1)

如果我理解正确,您将令牌保存到共享首选项,如果不存在,您希望将用户视为未登录?

查看有关SharedPreferences的文档:http://developer.android.com/reference/android/content/SharedPreferences.html#getString(java.lang.String,java.lang.String)

对象上的大多数get方法(包括getString)都有默认值。所以你可以这样做:String token = getString(tokenKey, "");然后检查它:if(token.isEmpty())...