我尝试在Android中创建一个Activity
,这个活动只包含一个ListView
,没有其他内容。
据我所知,要填充列表视图,我们需要使用ArrayAdapter
。
因此,为了理解ArrayAdapter,我阅读了以下链接:
http://developer.android.com/reference/android/widget/ArrayAdapter.html
但是我还是不能清楚地理解它!
最大的疑问之一是,为什么构造函数需要一个TextView
资源id,而我的活动没有任何TextViews,这是我应该给它的?
我并不是说这是唯一的构造函数,只是我无法理解它背后的逻辑。
为了创建一个简单的列表视图,我还参考了下面的链接:
Simple ListView using ArrayAdapter example.
但是,我的主要疑问是,为什么它需要一个TextView资源id?
如果有人能用一个例子来解释它,那将是非常有帮助的。
编辑:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
发布于 2014-01-15 03:19:35
ArrayAdapter使用TextView来显示其中的每一项。在幕后,它使用它持有的每个对象的toString()
方法,并将其显示在TextView中。ArrayAdapter有许多可以使用的构造函数,您在示例中使用的构造函数是:
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
默认情况下,ArrayAdapter使用默认的TextView来显示每个项目。但是,如果您愿意,您可以创建自己的TextView,并通过扩展TextView类来实现您想要的任何复杂设计。然后必须将其放入布局中以供使用。您可以在textViewResourceId字段中引用它来将对象绑定到此视图,而不是默认视图。
为了便于使用,我建议您使用构造函数:
ArrayAdapter(Context context, int resource, T[] objects).
在您的情况下,这将是:
ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values)
应该没问题的。这将把每个字符串绑定到默认的TextView显示--普通和简单的白色背景。
因此,要回答您的问题,您不必使用textViewResourceId。
发布于 2013-09-29 23:05:01
,但主要的疑问是为什么需要TextView资源id?
看看构造函数和参数。
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
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
发布于 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/
https://stackoverflow.com/questions/19079400
复制相似问题