多个微调器使用一个具有不同值的列表

问题描述 投票:0回答:1

我有以下代码,它添加了基于循环的微调器(我的循环在我的真实版本中是不同的,但在这里简化,因为结果是相同的)。

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

  1. Q

旋转器2

  1. Q

应该发生的结果(在我看来)是每个微调器中应该显示两个不同的列表。与此类似:

旋转器1

  1. 一个
  2. C

旋转器2

  1. Q

我怀疑ArrayAdapters有一个我缺少的东西?

java android arraylist spinner
1个回答
0
投票

您正在为两个旋转器使用相同的列表,以查找项目相同的原因。

解决方案1:在本地声明listDynamic。 listDynamic.clear(); - >列表listDynamic = new Arraylist();

解决方案2:为不同的微调器listDynamic1,listDynamic2使用不同的列表对象...

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.