ArrayAdapter に格納されている 10 万以上のアイテムのインベントリ リストがあります。これを使用して ListView を設定します。EditText ボックスと TextChangedListener を使用して、EditText ボックスに入力された内容に基づいてインベントリ リストをジャンプします。現在、私の最初のアプローチは、次のようにコーディングすることでした...
ListView01.setSelection(adapter.getPosition(charSeq.toString()));
これは ArrayList を検索して配列内のアイテムの位置を取得し、setSelection は ListView をリスト内のそのポイントにジャンプします。これは問題なく機能しますが、完全一致に対してのみ機能し、必要な機能を提供しません。完全一致かどうかに関係なく、リストをジャンプしたいと思います。「c」の入力を開始すると、リストが「c」で始まる最初の項目にジャンプし、完全一致に基づく位置にジャンプするだけでなく、入力中にリスト内をジャンプし続けるようにします。
それで、それらは「startsWith」のような関数で、arrayAdapter または ListView を検索してジャンプする位置を得るために使用できますか? 私が取るべき別のアプローチはありますか?ビューからアイテムが削除されるため、フィルターを設定したくありません。私はすでにこのアプローチを試しました。また、フィルターは、最初の文字を入力した後、インベントリ リストをフィルター処理するのに 45 秒かかります。ListView からアイテムを削除せずに新しい位置にジャンプした後、リストを自由に上下にスクロールしたいと考えています。