我有以下代码,该代码基于循环添加了微调器(我的循环在我的实际版本中是不同的,但在这里简化了,因为结果是相同的。)
for(int i = 0; i < 2; i++{
Spinner spinner = new Spinner(this);
spinner.setId(result.getInt(0));
Cursor result2 = databaseHelper.retrieveData(DatabaseHelper.LISTTABLE,"`Select list`",result.getString(8),null);
listDynamic.clear();
listDynamic.add("");
for(int j = 0; j < result2.getCount(); j++){
result2.moveToNext();
listDynamic.add(result2.getString(7));
}
ArrayAdapter arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, listDynamic);
spinner.setAdapter(arrayAdapter);
result2.close();
listSpinners.add(spinner);
rlParent.addView(spinner);
}
那行得通:微调器按预期工作。
代码产生以下结果:微调器将仅使用listDynamic和arrayAdapter的最后一次迭代。基本上导致以下结果:
微调框1
Spinner 2
(在我看来)应该发生的结果是,每个微调器中应显示两个不同的列表。与此类似:
微调框1
Spinner 2
我怀疑ArrayAdapters缺少我的东西吗?
答案 0 :(得分:0)
您正在为两个微调器使用相同的列表,这说明项目为何相同。
解决方案1:在本地声明listDynamic。 listDynamic.clear(); ->列表listDynamic = new Arraylist();解决方案2:为不同的微调器使用不同的列表对象listDynamic1,listDynamic2 ...
希望这会有所帮助