Nir*_*ani 61 android listview android-arrayadapter
我尝试Activity在Android中创建一个,此活动只包含ListView其他内容.
据我所知填写列表视图我们需要使用ArrayAdapter.
所以要了解ArrayAdapter,我已阅读以下链接:
http://developer.android.com/reference/android/widget/ArrayAdapter.html
但我仍然无法理解它!
最大的疑问之一是为什么构造函数需要TextView资源ID而我的活动没有任何TextViews我应该给它什么?
我并不是说这是唯一的构造函数,只是因为我无法理解它背后的逻辑.
为了创建一个简单的列表视图,我还提到了以下链接:
但我的主要疑问是它为什么需要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