2

将数组加载到位于不同视图上的微调器时出现问题。该数组在 arrays.xml 中正确定义,名称为 beerstyles。beerstylespinner 被定义为carbonationcalculator_view.xml. 当代码在主 java 类中但不在附加的 carbonationcalculator 类中时,此方法有效。除了未填充数组的微调器外,一切正常。

这是代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.carbonationcalculator_view);

    Spinner s = (Spinner) findViewById(R.id.beerstylespinner);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.beerstyles, R.layout.carbonationcalculator_view);

    adapter.setDropDownViewResource(R.layout.carbonationcalculator_view);

    s.setAdapter(adapter);
}
4

1 回答 1

1

我不确定这是否能解决问题,但对于为适配器的下拉资源设置什么布局似乎有些混乱。 setContentView()应该用于您要为活动设置的视图;但是,下拉资源应该是您希望每一行看起来的样子。

你应该使用的是类似android.R.layout.simple_list_item_1. 您可以模拟演示List1.java,但您可以使用它们的构造函数:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, R.array.beerstyles, android.R.layout.simple_list_item_1);

ArrayAdapter.setDropDownViewResource()另外,使用后不需要调用ArrayAdapter.createFromResource()——第三个参数下拉视图资源。

于 2009-12-01T18:14:20.120 回答