如何使用共享Prefs值来启动特定活动

时间:2016-01-31 09:40:21

标签: android android-activity sharedpreferences

我跟着this将数据存储在共享偏好

我在这里接受Spinner的输入

string i

在那边我保存了一个像这样保存的数据

Spinner ftype = (Spinner) findViewById(R.id.s1);
Spinner vtype = (Spinner) findViewById(R.id.s2);

Map<String, String> map = new HashMap<String, String>();

SharedPreferences settings = getSharedPreferences(Sri_eta_SP, 0);
SharedPreferences.Editor editor = settings.edit();

map.put("ftype",ft);
map.put("vtype",vt);

for (String key : map.keySet()) {
editor.putString(key, map.get(key));
}

这里spinner s1包含Android,IOS,Windows等值列表 这里spinner s2包含值列表,如phone,tab

所以在这里我想使用特定的值..比如android或2016来自任何微调器

我正在使用这个

<?xml version="1.,0' encoding='utf-8' standalone='yes'?>
<map>
<string name="ftype">Android</string>
<string name="vtype">phone</string>
</map>

但它不起作用它与if((map.containsKey("ftype") && map.get("ftype")!= null) && map.get("ftype")==Android){ MainActivity.this.finish(); Intent c = new Intent(MainActivity.this, Android.class); c.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(c); finish(); } else{ MainActivity.this.finish(); Intent a = new Intent(MainActivity.this, Select.class); a.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(a); finish(); } 条件一致 我也试过这个

else

和这个

if(map.get("ftype")==Android){

但是它不起作用......任何人都可以建议我,如果值包含特定的值,那么它应该开始一个活动....

1 个答案:

答案 0 :(得分:1)

  

但它不起作用它与其他条件......

由于使用==比较字符串值,请使用String.equals代替==。例如:

if(map.get("ftype").equals("Android"){
  // your code here
}