1

我正在尝试向我的应用程序添加一些 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" >

          />

关于如何做到这一点的任何想法?

4

3 回答 3

1

如果我正确理解了您要执行的操作,那么以下内容应该可以解决您的问题:

if (tokenAlreadySet()) {
    Preference connectToXXX = (Preference) findPreference("pref_connect_to_xxx");
    connectToXXX.setSummary("logout from xxx");
}
于 2014-09-21T05:34:42.590 回答
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");
于 2014-09-21T05:45:23.760 回答
-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())...

于 2014-09-21T05:18:14.993 回答