【问题标题】:How to display a specific setting or another if a shared setting value is present or not?如果存在或不存在共享设置值,如何显示特定设置或其他设置?
【发布时间】:2014-09-21 05:10:22
【问题描述】:

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

          />

你知道怎么做吗?

【问题讨论】:

  • 你描述的很清楚,现在你在找什么?如何使用共享首选项的示例?
  • 我知道如何从共享首选项中获取值,但我想知道如何在设置片段上设置一个或另一个值,因为这是从 XML 显示的。
  • 我仍然不清楚这个问题 - 听起来像是一个简单的 if-else...
  • 对不起,我认为我不清楚...我想在设置活动中显示登录或注销,但我不知道如何去做,因为它是在 XML 中定义的。 />
  • 听起来你应该有一个 LoginActivity,当 SharedPreferences 中的相关属性已经设置时,它应该被简单地跳过(直接调用你的主活动而不是通过“登录”屏幕)。跨度>

标签: android sharedpreferences android-settings


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    通过按其键查找首选项以编程方式修改摘要,并根据您的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");
    

    【讨论】:

      【解决方案3】:

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

      查看有关 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())...

      【讨论】:

      • 我编辑了问题,因为值在 XML 中,我不知道如何从代码中动态更改它。
      猜你喜欢
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      相关资源
      最近更新 更多