现在想做一个取出的键值对中的值来做比较。就是在登录后,保存的状态,如果登录成功则将一个按钮的样式改变,如果失败则按钮 保持不变。。
想通过存储在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”判断
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();
}
取值默认值建议用false
可以给按钮设置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");