1

我有一个列表,用(course id- course name)检索我的 sql 表单。

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

4

2 回答 2

3

如果您检查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);
于 2012-11-12T11:45:07.457 回答
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,但还必须包含 TextView 和您传递给 ArrayAdapter 的 id(第三个参数),以便它可以知道将字符串放在哪里

于 2012-11-12T11:51:39.530 回答