2014-09-21 59 views
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" > 

      /> 

有關如何做到這一點任何想法?

+0

你描述得很清楚,現在你在找什麼?一個如何使用共享首選項的例子? – alfasin 2014-09-21 05:15:14

+0

我知道如何從Shared Preferences中獲取值,但我想知道如何在設置片段上設置一個值或另一個值,因爲這是從XML中顯示的。 – Motheus 2014-09-21 05:17:58

+0

這個問題仍然不清楚 - 聽起來像一個簡單的,如果 - 其他... – alfasin 2014-09-21 05:19:11

回答

-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())...

+0

我編輯的問題,因爲價值是在XML中,我不知道如何動態地從代碼中改變它。 – Motheus 2014-09-21 05:30:56

1

如果我明白你想正確地做什麼,那麼下面應該解決您的問題:

if (tokenAlreadySet()) { 
    Preference connectToXXX = (Preference) findPreference("pref_connect_to_xxx"); 
    connectToXXX.setSummary("logout from xxx"); 
} 
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"); 
相關問題