【问题标题】:Unable to populate spinner with array list?无法使用数组列表填充微调器?
【发布时间】:2020-04-21 14:52:23
【问题描述】:

我从共享首选项中获取值并将键值添加到数组列表中。我在共享首选项中保存了 3 个键值,但只有其中一个值被添加到微调器中。我希望将列表中的所有值添加到微调器中。请帮助我是新来的,我确实遇到过其他类似的问题,但我找不到解决方案。

SharedPreferences mPrefs = getSharedPreferences("data", Context.MODE_PRIVATE);
    Map<String, ?> allEntries = mPrefs.getAll(); 
    allEntries.values().remove(false); // removing values that are "false"

°

for (Map.Entry<String, ?> entry : allEntries.entrySet()) {

    languages = new ArrayList();

        languages.add(entry.getKey());



    }


    Spinner s = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, languages);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    s.setAdapter(adapter);

}

}

【问题讨论】:

    标签: java android arraylist spinner


    【解决方案1】:

    因为您每次都从ArrayList 创建新实例

    你应该像这样将它移到 for 循环之外。

    languages = new ArrayList();
    
    for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
        languages.add(entry.getKey());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多