如果存在或不存在共享设置值,如何显示特定设置或其他设置



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

那样检查它

最新更新