7

我一直试图弄清楚如何使用 ArrayAdapter 类,并且从文档: http: //developer.android.com/reference/android/widget/ArrayAdapter.html,我看到构造函数需要一个名为 textViewResourceId 的整数。

这究竟是什么?

编辑:从这里的更多研究和答案来看,它看起来一定是我在包含接口代码的 xml 文件中定义的 TextView 的 id。但我在这里看到了这个例子:

ArrAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,myArrayList)

那么 android.R.layout.simple_list_item_1 怎么用在这里呢?这究竟意味着什么?我只熟悉使用 R.id.idOfMyViewHere

4

4 回答 4

6

android.R.layout.simple_list_item_1是默认布局,如果你想使用你的布局,那么你也可以像这样使用它

new ArrayAdapter<String>(context, layout_id, textview_id, items);

于 2012-04-05T10:22:15.040 回答
4

textview它是适配器将在其中更新您将提供的信息的 id 。你可以使用textviewandroid提供的:

android.R.id.text1

例如。或者您可以提供自己textView的自定义 ID

编辑

改变:

ArrayAdapter(this,android.R.layout.simple_list_item_1,myArrayList)

ArrayAdapter(this,android.R.id.text1,myArrayList)
于 2012-04-05T09:15:16.180 回答
1

textViewResourceId 是特定布局的 ID。要引用该 id,请使用格式 R.layout.* 。

R.layout.* 是您在 res/layout 文件夹中创建的布局。因此,如果您的 res/layout/ 文件夹中有一个名为“my_list_item.xml”的 xml 布局文件,可以使用任何您想要的布局格式,那么您可以将其用作您的 textViewResourceId(不一定是 TextView)。

如果您不想创建自己的布局,可以使用 android-sdk 目录中的内置布局,(在我的情况下是 C:\Android\android-sdk\platforms\android-8\data \res\布局)。您通过 android.R.layout.* 引用这些内置布局(注意我以“android”开头)。因此,如果我想使用内置的 simple_list_item_1.xml,那么我可以使用 android.R.layout.simple_list_item_1 来引用它。

R.layout.* <---自己的布局
android.R.layout.* <---内置Android布局

一些流行的布局:
android.R.simple_list_item_1
simple_list_item_2.xml
等。

于 2012-04-05T11:15:57.437 回答
0

来自文档:

由任意对象数组支持的具体 BaseAdapter。默认情况下,此类期望提供的资源 id 引用单个 TextView。

简单来说,它默认是绑定到 textView 的,而 text view 是

要填充的布局资源中的 TextView 的 id

于 2012-04-05T09:12:39.730 回答