ListView
で提供されるgetCount()
関数の問題が発生しています。私は、に表示される行の数をonQueryTextChange()
メソッドでフィルタすると、SearchView
で提供される行の数を取得しようとしています。残念ながら、の数字は、常に1回の繰り返しでオフになります。たとえば、ListView
の4つの項目から開始し、ListView
に1つの項目しか含めることができないようにフィルターをかけると、getCount()
関数は4を返します。その直後にフィルターを再設定すると、 1を取得します。onQueryTextChange()
メソッドでListView
をフィルターにかけたときに、適切なgetCount()
番号が与えられるように、どうすれば入手できますか?リストビューgetCount()メソッドを1回だけオフにします
1
A
答えて
0
clearFilterTextとsetFilterTextは何を行うことができますか?彼らはあなたが変更をアダプタ
+0
私は同じダイアログ内のlistViewをフィルタリングするためにダイアログ内でsearchViewを使用しています。ですから、 'clearFilterText()'はlistView内の項目のリスト全体を表示しますが、 'setFilterText(newText)'は渡されたnewTextに適合するリストビュー内の項目のみを表示します。 – topgun741
0
に反映されるようにadapter.notifyDataSetChangedを呼び出す必要がありますどのような方法でリストを変更した場合、この
@Override
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
listView.clearTextFilter();
for (int i = 0; i < actualposList.size(); i++) {
listView.setItemChecked(actualposList.get(i), true);
Log.d("qqqq", String.valueOf(actualposList.get(i)));
}
} else {
listView.setFilterText(newText);
if (!actualposList.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
//listView.setItemChecked(i, false);
}
}
}
sizeOfList = listView.getAdapter().getCount(); //changes based on the number of items in the listview....so changes when filtered
Toast.makeText(getActivity(), String.valueOf(sizeOfList), Toast.LENGTH_SHORT).show();
return true;
}
+0
これを試みました。残念ながら同じ結果:( – topgun741
関連する問題
- 1. JSPページは1回だけJavaメソッドを実行します
- 2. Pythonは__init __()メソッドを1回だけ呼び出します
- 3. R:rowSumsを1つだけオフにします
- 4. onclickは1回だけソートします
- 5. @Scheduleメソッドを一度に1回だけ呼び出す方法
- 6. 1回目の起動時にXMLを1回だけ解析します。
- 7. メソッドをアプリケーションライフタイム全体で1回だけ呼び出す
- 8. メソッドを1回だけ実行する方法
- 9. タブ内のAndroidリストビューは1行だけを表示します
- 10. Jqueryはデータを1回だけループするか、データを1回だけ表示します
- 11. 特定のメソッドを1回だけ呼び出します。Angular JS
- 12. py.testメソッドは1回の実行につき1回だけ実行されます
- 13. 各リンクをクラスごとに1回だけ追加します
- 14. インストール後にアクティビティを1回だけ起動します。
- 15. Angular2は1回だけ子にオブジェクトを渡します
- 16. はgitリポジトリに1回だけファイルをインクルードします
- 17. Linq:WhereとOrderByに同じメソッドを2回ではなく1回だけ呼び出しますか?
- 18. Java Swing setBounds()を1ピクセルだけオフにする
- 19. メソッドが1回だけ呼び出されるJquery
- 20. リストビュー内でスイッチを一度に1つだけオンにする
- 21. バックボーンコレクションイベントを1回だけ追加する
- 22. イテレータを1回だけ移動する
- 23. ボタンを1回だけリロードするクリック
- 24. スライドインバナーを1回だけ表示する
- 25. ポップアップを1回だけ表示する
- 26. ボタンを1回だけクリックする(js)
- 27. ボタンを1回だけタップする - スウィフト
- 28. トリガークエリを1回だけ送信する
- 29. スクロールを1回だけ表示する
- 30. AccelerateDecelerateInterpolatorを使用してImageViewが1回だけ回転する
あなたはactualposList.sizeを(使用カント試してみてください)の代わりに同様にgetCountの? – ABDevelopers
残念ながら、actualposListは私が作成したダイアログ内のチェックされた項目の位置を保持していません。 onQueryTextChangeが呼び出されたときにリストビューに表示される項目の数が必要です。 – topgun741
試すことがあります。Method1 - フィルターを使用する代わりに、アダプターの内部でパブリックメソッドを使用します。 Method2 - あなたのアダプタとフィルタのpublishResults()にインターフェイスを作成し、あなたのactivity/fragmentを更新してください。[http://programandroidlistview.blogspot.com/]で配列サンプルのサンプルを見てください。それは助けて欲しい! –