【问题标题】:Multiple spinners using one list with different values多个微调器使用具有不同值的一个列表
【发布时间】:2019-08-13 04:46:46
【问题描述】:

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

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. W
  2. E

微调器 2

  1. W
  2. E

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

微调器 1

  1. 一个
  2. B
  3. C

微调器 2

  1. W
  2. E

我怀疑我缺少关于 ArrayAdapters 的东西?

【问题讨论】:

    标签: java android arraylist spinner


    【解决方案1】:

    您对两个微调器使用相同的列表,说明为什么项目相同。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      相关资源
      最近更新 更多