arrayAdapter 中的资源类型问题

问题描述 投票:0回答:1
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, R.array.lsViewArray );

lsViewArray.XML

<resources>
 <string-array name="lsViewArray">
  <item>Magenta</item>
  <item>Green</item>
  <item>Blue</item>
  <item>Red</item>
  <item>Black</item>
  <item>Orange</item>
  <item>Purple</item>
  <item>Pink</item>
  <item>White</item>
  <item>Violet</item>
  <item>Saffron</item>
  <item>Yellow</item>
  <item>Brown</item>
 </string-array>
</resources>

它给我带来了错误

R.array.lsViewArray
错误:- 类型 id 的预期资源

除了在MainActivity中制作数组还能做什么 我想通过

lsViewArray.xml
访问它 或者我应该知道的其他方法

java android android-layout android-arrayadapter
1个回答
0
投票

在当前代码中,您使用 R.array.lsViewArray 作为 textViewResourceId。 textViewResourceId 是要填充的布局资源中的 TextView 的 id。在您的情况下,要填充的布局资源是 android.R.layout.simple_list_item1。它不包含任何 ID 为 R.array.lsViewArray 的 Textview,因此您会收到错误。

要解决此问题,您可以使用接受 T[] 对象的构造函数。

首先,从您的资源中获取数组。为此,请输入:

String[] lsViewArrayData = getResources().getStringArray(R.array.lsViewArray);

然后创建适配器并传递对象 lsViewArrayData:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(MainActivity.this,
                android.R.layout.simple_list_item_1, lsViewArrayData);
© www.soinside.com 2019 - 2024. All rights reserved.