java怎么取键值对中的值来做比较

现在想做一个取出的键值对中的值来做比较。就是在登录后,保存的状态,如果登录成功则将一个按钮的样式改变,如果失败则按钮 保持不变。。
想通过存储在SharedPerefrences中的一个putString("isLoginSucceed", "true").commit(); 里面的true来判断。
就是在新页面,去调用SharedPerefrences中调用成功的值 ture,来做按钮的改变。。

我在页面中get时,是用的

String loginTure = preferences.getString("isLoginSucceed", "true");
它就是一个键值对的,或者就是对这个键值对,做一个判断,如果键值对是符合条件的,就是变按钮,不然,就可以不变?

首先sp是可以直接储存布尔类型的(Editor putBoolean(String key, boolean value);),取出来也是布尔类型( boolean getBoolean(String key, boolean defValue);).
如果你一定要用String储存,你可以用equals对比

if("true".equals(loginTure)){
}
//忽略大小写
if("true".equalsIgnoreCase(loginTure)){
}

或者转成布尔再对比

if(Boolean.parseBoolean(loginTure)){
            
 }

这个很简单啊,直接getString方法即可获得,我发现你的问题好多啊,建议可以买一本安卓的书进行系统性学习,推荐郭霖老师的第一行代码。

String loginTure = preferences.getString("isLoginSucceed")是这样吧,再用string.isequal和“true”判断

  1. SP 可以直接保存boolean型变量

    public static boolean putBoolean(Context context, String key, boolean value) {
     SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
     SharedPreferences.Editor editor = settings.edit();
     editor.putBoolean(key, value);
     return editor.commit();
    }
    
  2. 取值默认值建议用false

  3. 可以给按钮设置selector样式,SP取值后设置响应状态,形如以下代码。此时为按钮如果设置background为以下背景,在代码中直接设置setSelected(true/false)即可改变样式

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_selected="true">
         <shape android:shape="oval">
             <solid android:color="#4a9fda"/>
             <size android:width="15.5dp" android:height="15.5dp"/>
             <stroke android:width="1.5dp" android:color="#a2a2a2"/>
         </shape>
     </item>
     <item>
         <shape android:shape="oval">
             <size android:width="14dp" android:height="14dp"/>
             <solid android:color="#4a9fda"/>
         </shape>
     </item>
    </selector>
    

String value=(String)map.get("key");