0

我正在使用里面的数组创建一个 Spinner strings.xml

我注意到我可以android:entries="@array/theName"用来填充我的微调器。或者我可以使用以下代码:

spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter1 = ArrayAdapter.createFromResource(this, R.array.theName, android.R.layout.simple_spinner_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter1);

那么这两者有什么区别呢?一个跑得比另一个快吗?我完全赞成不使用所有代码,但如果它会导致我的应用程序的其余部分出现问题,我宁愿使用代码。我计划在我的应用程序的其他地方使用用户选择的内容。

4

2 回答 2

0

两者都是有效的。

如果您已经将字符串数组放入 res 文件夹,请使用 XML 代码。它更简单,更清洁。否则,如果您动态获取数组(例如从互联网),请使用 java 方法。

于 2012-09-09T17:12:37.427 回答
0

这些方法之间几乎没有区别,属性android:entries主要是一种方便的方法。您可以自己查看代码:

  1. ArrayAdapter.createFromResource()
  2. 使用android:entries

他们都调用Resources.getTextArray()并创建一个ArrayAdapter<CharSequence>. 主要区别在于:使用方法1允许您使用自定义布局,而使用方法2只需要一行XML代码。

引用有关属性的文档entries

对于静态内容,这比以编程方式填充 Spinner 更简单。

于 2012-09-09T18:02:35.107 回答