带自定义列表的AutoCompleteTextView:如何设置OnItemClickListener

时间:2010-03-17 15:58:00

标签: android xml custom-controls autocompletetextview android-cursor

我正在开发一个使用标签的应用。访问它们应该尽可能简单。使用AutoCompleteTextView似乎对我来说很合适。我想要的是什么:

  • 现有标签应显示在可选列表中,每个项目旁边都有一个CheckBox
  • 现有标签应显示在AutoCompleteTextView的焦点上(即输入字母后不显示)

到目前为止我所做的是将标签存储在专用的sqlite3表中。查询标签,生成Cursor。 Cursor传递给SimpleCursorAdapter,如下所示:

Cursor cursor = dbHelper.getAllTags();
startManagingCursor(cursor);
String[] columns = new String[] { TagsDB._TAG};
int[] to = new int[] { R.id.tv_tags};
SimpleCursorAdapter cursAdapt = new SimpleCursorAdapter(this, R.layout.tags_row, cursor, columns, to);
actv.setAdapter(cursAdapt);

如您所见,我创建了 tags_row.xml ,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:paddingLeft="4dip" android:paddingRight="4dip"
    android:orientation="horizontal">
    <TextView android:id="@+id/tv_tags" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_weight="1"
        android:textColor="#000" android:onClick="actv_item_click" />
    <CheckBox android:id="@+id/cb_tags" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:onClick="actv_item_checked" />
</LinearLayout>

看起来像这样:

image http://img708.imageshack.us/img708/5992/devicem.png

所以结果显示就像我想要的那样。但是TextView的onClick监听器没有响应。一旦项目被(取消)选中,我就不知道如何访问数据。

列表的行为应如下:

  • 点击CheckBox项应该将相应的标记插入/追加到AutoCompleteTextView中(标记将以分号分隔)
  • 点击TextView项应该将相应的标签插入/附加到AutoCompleteTextView并关闭列表。

0 个答案:

没有答案