【问题标题】:How use shared Prefs value to start a specific activity如何使用共享首选项值来启动特定活动
【发布时间】:2016-01-31 09:40:20
【问题描述】:

我关注this 将数据存储在共享首选项中

这里我从 Spinner 获取输入

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));
}

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

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

这里 spinner s1 包含 Android、IOS、Windows 等值的列表 此处微调器 s2 包含值列表,例如 phone、tab

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

我是这样用的

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){

还有这个

for (String ftype : map.keySet()) {
     Android = map.get(ftype);
       
     if(map.get("ftype")==Android){

   }

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

【问题讨论】:

    标签: android android-activity sharedpreferences


    【解决方案1】:

    但它不工作它与其他条件...

    由于使用==比较String值,所以使用String.equals而不是==.like:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 2011-06-16
      • 1970-01-01
      • 2012-09-20
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多