android中的ArrayAdapter创建简单的listview

Nir*_*ani 61 android listview android-arrayadapter

我尝试Activity在Android中创建一个,此活动只包含ListView其他内容.

据我所知填写列表视图我们需要使用ArrayAdapter.

所以要了解ArrayAdapter,我已阅读以下链接:

http://developer.android.com/reference/android/widget/ArrayAdapter.html

但我仍然无法理解它!

最大的疑问之一是为什么构造函数需要TextView资源ID而我的活动没有任何TextViews我应该给它什么?

我并不是说这是唯一的构造函数,只是因为我无法理解它背后的逻辑.

为了创建一个简单的列表视图,我还提到了以下链接:

使用ArrayAdapter示例的简单ListView.

但我的主要疑问是它为什么需要TextView资源ID呢?

如果有人能用一个例子解释它,那将非常有帮助.

编辑:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_1, android.R.id.text1, values);
Run Code Online (Sandbox Code Playgroud)

ucs*_*nil 73

ArrayAdapter使用TextView显示其中的每个项目.在幕后,它使用toString()它所拥有的每个对象的方法,并在TextView中显示它.ArrayAdapter有许多可以使用的构造函数,您在示例中使用的构造函数是:

ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
Run Code Online (Sandbox Code Playgroud)

默认情况下,ArrayAdapter使用默认TextView显示每个项目.但是如果你愿意,你可以通过扩展TextView类来创建自己的TextView并实现你想要的任何复杂设计.然后,这将必须进入布局供您使用.您可以在textViewResourceId字段中引用它以将对象绑定到此视图而不是默认值.

为了您的使用,我建议您使用构造函数:

ArrayAdapter(Context context, int resource, T[] objects). 
Run Code Online (Sandbox Code Playgroud)

在您的情况下,这将是:

ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values)
Run Code Online (Sandbox Code Playgroud)

它应该没问题.这会将每个字符串绑定到默认的TextView显示 - 纯白色和简单的白色背景.

因此,要回答您的问题,您不必使用textViewResourceId.


Rag*_*dan 21

但是,再次主要怀疑为什么需要TextView资源ID?

看一下构造函数和参数.

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)
Run Code Online (Sandbox Code Playgroud)

在API级别1构造函数中添加

参数

context 目前的背景.

resource 包含在实例化视图时使用的布局的布局文件的资源ID.

textViewResourceId 要填充的布局资源中TextView的id要在其中表示的对象ListView.

android.R.id.text1指的是android资源中的文本id.所以你不需要在活动中使用那个.

这是完整列表

http://developer.android.com/reference/android/R.id.html

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, android.R.id.text1, values);
Run Code Online (Sandbox Code Playgroud)

this 指活动背景

android.R.layout.simple_list_item_1 simple_list_item_1是android.R.layout中的布局.

android.R.id.text1 指的是android资源id.

values 是您提供的链接中的字符串数组

http://developer.android.com/reference/android/R.layout.html