首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ArrayAdapter在安卓中创建简单的listview

ArrayAdapter在安卓中创建简单的listview
EN

Stack Overflow用户
提问于 2013-09-29 22:50:05
回答 8查看 234.1K关注 0票数 63

我尝试在Android中创建一个Activity,这个活动只包含一个ListView,没有其他内容。

据我所知,要填充列表视图,我们需要使用ArrayAdapter

因此,为了理解ArrayAdapter,我阅读了以下链接:

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

但是我还是不能清楚地理解它!

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

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

为了创建一个简单的列表视图,我还参考了下面的链接:

Simple ListView using ArrayAdapter example.

但是,我的主要疑问是,为什么它需要一个TextView资源id?

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

编辑:

代码语言:javascript
复制
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
          android.R.layout.simple_list_item_1, android.R.id.text1, values);
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-01-15 03:19:35

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

代码语言:javascript
复制
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

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

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

代码语言:javascript
复制
ArrayAdapter(Context context, int resource, T[] objects). 

在您的情况下,这将是:

代码语言:javascript
复制
ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values)

应该没问题的。这将把每个字符串绑定到默认的TextView显示--普通和简单的白色背景。

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

票数 80
EN

Stack Overflow用户

发布于 2013-09-29 23:05:01

,但主要的疑问是为什么需要TextView资源id?

看看构造函数和参数。

代码语言:javascript
复制
public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)

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

参数

context当前上下文。

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

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

android.R.id.text1是指android资源中的文本id。所以你不需要在你的活动中有一个。

这是完整的清单

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

代码语言:javascript
复制
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, android.R.id.text1, values);

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

票数 21
EN

Stack Overflow用户

发布于 2015-07-21 06:39:59

它需要的TextView资源id是用于TextView布局文件的,因此它不会出现在相同的活动中。

您可以通过转到File > New > XML > XML Layout File来创建它,并在根标签字段中输入小部件类型,即'TextView‘。

来源:https://www.kompulsa.com/the-simplest-way-to-implement-an-android-listview/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19079400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档