在Android的ArrayAdapter创build简单的ListView
我试图在Android中创build一个Activity ,这个Activity只包含一个ListView 。 
 正如我所知要填充列表视图,我们需要使用ArrayAdapter 。 
所以要了解ArrayAdapter我已阅读以下链接:
http://developer.android.com/reference/android/widget/ArrayAdapter.html
但是我仍然无法清楚地理解它!
 最大的疑问之一是为什么构造函数需要一个TextView资源ID,而我的活动没有任何TextViews,我应该给它? 
我不是说这是唯一的构造函数,但是我想解释的是我无法理解它。
为了创build一个简单的listview,我还提到了下面的链接:
简单的ListView使用ArrayAdapter的例子。
但我的主要疑虑是为什么它需要一个TextView资源ID?
如果有人可以用例子来解释,这将是非常有帮助的。
编辑:
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); 
	
  ArrayAdapter使用TextView来显示其中的每个项目。 在幕后,它使用它保存的每个对象的toString()方法,并在TextView中显示它。  ArrayAdapter有一些可以使用的构造函数,你在例子中使用的是: 
 ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) 
默认情况下,ArrayAdapter使用默认的TextView来显示每个项目。 但是,如果你想,你可以创build自己的TextView,并通过扩展TextView类来实现任何你想要的复杂devise。 这将不得不进入布局供您使用。 您可以在textViewResourceId字段中引用此对象,以将对象绑定到此视图而不是默认值。
为了您的使用,我build议您使用构造函数:
 ArrayAdapter(Context context, int resource, T[] objects). 
在你的情况下,这将是:
 ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values) 
应该没问题。 这将绑定每个string到默认的TextView显示 – 简单和简单的白色背景。
所以要回答你的问题,你不必使用textViewResourceId。
但主要怀疑为什么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.simple_list_item_1中的布局。 
  android.R.id.text1引用android资源ID。 
  values是您提供的链接中的string数组 
http://developer.android.com/reference/android/R.layout.html
 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 
我也是新来的Android,所以我可能是错的。 但根据我的理解,而使用此列表视图创build第二个参数是列表项的布局。 布局由许多视图(图像视图,文本视图等)组成。 用第三个参数指定要在哪个视图或文本视图中显示文本。
 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 
在这里,资源意味着在实例化视图时使用的布局的“id”。
 现在,这个布局有许多子视图和他们自己的ID。 所以, textViewResourceId告诉我们需要填充数据的子视图。 
你不需要使用id为textview。 你可以从android arrayadapter学到更多。 下面的代码初始化arrayadapter。
 ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.single_item, eatables); 
它需要的TextView资源ID是一个TextView布局文件,所以它不会在同一个活动中。
您可以通过转到文件>新build> XML> XML布局文件创build它,然后在根标记字段中input“TextView”的窗口小部件types。
资料来源: https : //www.kompulsa.com/the-simplest-way-to-implement-an-android-listview/