无法使用数组列表填充微调器?
Unable to populate spinner with array list?
我正在从共享首选项中获取值并将键值添加到数组列表中。我在共享首选项中保存了 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);
}
}
因为您每次都从ArrayList
创建新实例
你应该像这样将它移到 for 循环之外。
languages = new ArrayList();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
languages.add(entry.getKey());
}
我正在从共享首选项中获取值并将键值添加到数组列表中。我在共享首选项中保存了 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);
}
}
因为您每次都从ArrayList
创建新实例
你应该像这样将它移到 for 循环之外。
languages = new ArrayList();
for (Map.Entry<String, ?> entry : allEntries.entrySet()) {
languages.add(entry.getKey());
}