【问题标题】:Setting an array in a spinner retrieved from a database在从数据库检索的微调器中设置数组
【发布时间】:2012-04-30 20:06:20
【问题描述】:

我正在尝试使用从数据库中检索的数组制作微调器,这里是我尝试使用的代码:

    Unit unit;
    int idx = 1;
    ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(this,
            android.R.layout.simple_spinner_item, new Unit[] {   
                unit = connector.getUnit(idx);
                while (connector.getUnit(idx) != null){  
                new Unit(unit.getunitID(), unit.getunitTypeID(), unit.getorganizationID(), unit.getunitName(), unit.getunitAddress());
                unit = connector.getUnit(idx);
                idx++;
                }
                  });

connector.getUnit(idx) 基本上是从数据库中检索一个 Unit 对象,如果没有更多要检索的单位,将返回一个空值。编译器在抱怨:

unit = connector.getUnit(idx);

as "语法错误,插入")"完成VariableInitializer"

和:

idx++;

as “语法错误,插入“}”完成Block”

我认为这将是做我想做的事情的正确代码,但不知何故我无法让它工作,知道吗?

提前致谢

【问题讨论】:

  • 为什么不将数组构造逻辑移出 spinnerArrayAdapter 构造?这样代码看起来更干净且易于调试对吧?

标签: android spinner token


【解决方案1】:

您尝试创建一个 Unit 对象数组。在 new Unit[] { } 的 "{" 和 "}" 之间,您只能使用用 "," 分隔的 Unit 对象。你有很多不符合这种语法的逻辑。您应该将其全部移出该初始化程序部分,并将已创建的 Unit 对象数组提供给 ArrayAdapter 构造函数。

【讨论】:

  • 谢谢!我重新排列了代码,以便从中检索 List 以及该列表中的所有单位,您知道如何从中设置 ArrayAdapter 吗?对不起,我对 Java 很陌生 :(
  • 假设您的 List 类型的变量是“单位”,您可以使用 units.toArray(new Unit[0]) 将其转换为 Unit[]。将此传递给您的 ArrayAdapter,它应该可以工作。
猜你喜欢
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多