错误:您必须为TextView提供资源ID

时间:2012-11-12 11:41:38

标签: android

我有一个列表,用(course id- course name)来回复我的sql表单。

我使用哈希她作为列表,我创建了一个适配器,它给我列表,我将它设置为微调器。 但是log cat中有一个问题是:

2 个答案:

答案 0 :(得分:3)

很好地解释了Luksprog:

ArrayAdapter要求资源ID为TextView XML异常,这意味着您不提供ArrayAdapter所期望的内容。当您使用此构造函数时:

new ArrayAdapter<String>(this, R.layout.a_layout_file, this.file)

R.Layout.a_layout_file 必须是xml布局,其中第一个元素必须是TextView ,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    //other attributes 
/>

如果您希望列表行布局有点不同,那么简单的TextView元素就会使用此构造函数:

new ArrayAdapter<String>(this, R.layout.a_layout_file, 
   R.id.the_id_of_a_textview_from_the_layout, this.file)

在哪里提供可以包含各种视图的布局的 id ,但是还必须包含传递给ArrayAdapter的带有和id(第三个参数)的TextView,以便它可以知道放在哪里字符串

答案 1 :(得分:2)

如果选中http://developer.android.com/reference/android/widget/ArrayAdapter.html#ArrayAdapter(android.content.Context,int,T []),您会发现数组适配器期望第二个参数是文本视图的资源ID 而不是布局 ..

使用以下方法初始化您的适配器:

new ArrayAdapter(MainActivity.this, android.R.layout.simple_spinner_item, coursesList);