タグを使用するアプリに取り組んでいます。それらへのアクセスは、できるだけ簡単にする必要があります。AutoCompleteTextView での作業は、私には適切なようです。私が欲しいもの:
- 既存のタグは、各項目の横にチェックボックスを付けて選択可能なリストに表示する必要があります
- 既存のタグは、AutoCompleteTextView の FOCUS で表示する必要があります (つまり、文字を入力した後ではありません)。
これまでに行ったことは、タグを専用の sqlite3 テーブルに格納することです。タグが照会され、カーソルが生成されます。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>
次のようになります。
画像 http://img708.imageshack.us/img708/5992/devicem.png
そのため、結果は希望どおりに表示されます。しかし、TextView の onClick リスナーは応答しません。また、項目が選択 (解除) された後にデータにアクセスする方法についての手がかりもありません。
リストの動作は次のとおりです。
- CheckBox 項目をタップすると、対応するタグが AutoCompleteTextView に挿入/追加されます (タグはセミコロンで区切られます)。
- TextView アイテムをタップすると、対応するタグが AutoCompleteTextView に挿入/追加され、リストが閉じられます。