多个微调器使用一个具有不同值的列表
Multiple spinners using one list with different values
我有下面的代码,它基于一个循环添加微调器(我的循环在我的真实版本中是不同的,但这里简化了,因为结果是一样的)。
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
- Q
- W
- E
微调器 2
- Q
- W
- E
应该发生的结果(在我看来)是每个微调器中应该显示两个不同的列表。类似这样:
微调器 1
- 一个
- B
- C
微调器 2
- Q
- W
- E
我怀疑我缺少有关 ArrayAdapter 的东西?
您对两个微调器使用相同的列表,这就是项目相同的原因。
解决方案 1:在本地声明 listDynamic 。
listDynamic.clear(); -> 列表 listDynamic=new Arraylist();
解决方案 2:对不同的微调器使用不同的列表对象 listDynamic1、listDynamic2 ...
我有下面的代码,它基于一个循环添加微调器(我的循环在我的真实版本中是不同的,但这里简化了,因为结果是一样的)。
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
- Q
- W
- E
微调器 2
- Q
- W
- E
应该发生的结果(在我看来)是每个微调器中应该显示两个不同的列表。类似这样:
微调器 1
- 一个
- B
- C
微调器 2
- Q
- W
- E
我怀疑我缺少有关 ArrayAdapter 的东西?
您对两个微调器使用相同的列表,这就是项目相同的原因。
解决方案 1:在本地声明 listDynamic 。 listDynamic.clear(); -> 列表 listDynamic=new Arraylist();
解决方案 2:对不同的微调器使用不同的列表对象 listDynamic1、listDynamic2 ...