我正在尝试向我的应用程序添加一些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" >
/>
你知道怎么做吗?
如果我正确理解了您要做的事情,那么以下内容应该可以解决您的问题:
if (tokenAlreadySet()) {
Preference connectToXXX = (Preference) findPreference("pref_connect_to_xxx");
connectToXXX.setSummary("logout from xxx");
}
通过按键查找首选项以编程方式修改摘要,并根据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");
如果我理解正确,您正在将令牌保存到共享首选项中,如果没有,您想将用户视为未登录?
签出SharedPreferences上的文档:http://developer.android.com/reference/android/content/SharedPreferences.html#getString(java.lang.String,java.lang.Sstring)
对象上的大多数get
方法(包括getString
)都有一个默认值。所以你可以做:String token = getString(tokenKey, "");
,然后像:if(token.isEmpty())...