Android デベロッパーの皆様、こんにちは。
Android SearchViewウィジェットに問題があります。私がやろうとしているのは、「ライブ」テキスト フィルターを ListView にアタッチすることです (テキスト入力により、フィルター結果が自動的に更新されます)。それは実際には問題なく動作し、次の行を使用して ListActivity で動作させるのに大きな努力は必要ありませんでした:
private SearchView listFilter;
this.listFilter = (SearchView) findViewById(R.id.listFilter);
this.listFilter.setOnQueryTextListener(this);
this.listFilter.setSubmitButtonEnabled(false);
this.getListView().setOnItemClickListener(this);
this.getListView().setTextFilterEnabled(true);
// from OnQueryTextListener
public boolean onQueryTextChange(String newText) {
if (newText.isEmpty()) {
this.getListView().clearTextFilter();
} else {
this.getListView().setFilterText(newText);
}
return true;
}
そしてここで xml ウィジェット宣言
<SearchView
android:id="@+id/listFilter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:iconifiedByDefault="false"
android:queryHint="enter text to filter" />
ここで私の問題は、SearchView にテキストを入力するたびに、奇妙なテキスト フィールドがポップアップして、入力したテキストと同じテキストが即座に表示されることです。私のリストのエントリを見てください。これはただ迷惑です。
SearchView への入力時にそのテキスト フィールドがポップアップしないようにする方法はありますか? xml 定義のウィジェット オプションにも Java クラス リファレンスにもプロパティが見つかりませんでした。
EditText と TextWatcher を使用してフィルター機能を提供する別の方法があることは知っていますが、フィルター処理をすべて自分で処理する必要があり、それを処理する SearchView から利益を得ることができませんでした。
任意の提案をいただければ幸いです。よろしくお願いします
フェリックス