問題タブ [matrixcursor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android - AutoCompleteTextView で SimpleCursorAdapter を使用すると、ユーザーが 3 番目以降の提案を選択したときに CursorIndexOutofBoundsException が発生する
タイトルが長文ですみません、150字超えたので切り捨てます。
私はAutoCompleteTextView
(ACTV)を持ってSimpleCursorAdapter
おり、通常の ACTV は各部分文字列 (部分文字列は空白で区切られている) の先頭でのみユーザー入力を検索し、それらの部分文字列内では検索しないため、 を使用しています。たとえば、Adipose
andを含むリストをBad Wolf
検索すると、のみad
が表示され、 は表示されません。以下に示すように、すでにアダプターを作成しました。Adipose
Bad Wolf
このコードにより、ユーザー入力の部分文字列を含む他のリスト項目を表示できます。
今、私はOnItemClickListener
関数を適切に作ろうとしています。これが私がこれまでに持っているものです:
ここではMatrixCursor
、指定された位置にある要素を取得しようとしています。ユーザーが最初の 2 つの提案を選択すると、問題なく動作します。ただし、ユーザーが 3 番目以降の提案をクリックすると、アプリケーションCursorIndexOutOfBoundsException Requested Column: 2, # of columns: 2
は logCat 行をクリックすると、コードが表示されますString selection = matrix.getString(position);
matrix.getString(position)
getString は要求された列の値を文字列として返し、列が 2 つしかないため、ACTV でその位置 (ユーザーに表示される位置ではなく、ユーザーに表示される位置) で提案を選択するため、実行するとエラーが発生すると思いますリスト内の上記の項目) が 2 より大きいと、コードが台無しになります。
私の質問は、私が使用していることを考えると、選択したアイテムの文字列値を取得するより良い方法はありSimpleCursorAdapter
ますか? Android dev サイトで Matrix Cursor のドキュメントを調べましたが、位置に基づいて行/要素を取得する方法が見つかりません。
どんな助けでも大歓迎です。
編集:
そのように使用matrix.moveToFirst();
しても役に立ちませんでした:
それでも例外が発生しました:
要求された列4
は、インデックス 0 が付けられた、選択された ACTV 提案の位置です。
android - SearchView: 提案リスナーから選択されたアイテムを取得する
MatrixCursor によって入力された提案を含む検索ビューがあります (既に文字列の配列があるため)。ただし、ユーザーが選択しているアイテムを取得したいと思います。これまでのところ、ユーザーが提案リストをクリックした位置しか取得できません。
ただし、エラーが発生しました。android.database.MatrixCursor を java.lang.String にキャストできません。どうすればよいかわかりません。どんな種類の助けにも本当に感謝しています。
android - Android MatrixCursor
基本的なマトリックス カーソルを実行しようとしていますが、何らかの理由でリストが空のままです。誰かがコードの何が問題なのかを見つけていただければ幸いです。