###前提・実現したいこと
Android Studio2.1.3でAndroidアプリを作っています。
ListFragmentを使って表示させている、
メインのListに、SearchViewによってデータ名の絞り込み機能を使いたいのです。
###発生している問題・エラーメッセージ
エラーは出ていませんが、SearchViewに文字を入力しても、 メインのListの絞り込み検索ができません
###該当のソースコード
import android.support.v4.app.ListFragment; import android.support.v7.widget.SearchView; import android.widget.ListView; public class ListPreviewFragment extends ListFragment { ListView this_ListView; SearchView searchView; Toolbar toolbar; ArrayAdapter<String> songList; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //MainFragmentからリスト化するデータ拡張子を受け取る Bundle bundle = getArguments(); extension = bundle.getString("extension"); //Fragment でMenuを表示する為に必要 this.setHasOptionsMenu(true); /** * 以下は端末内のデータを取得し、List化 詳細は省略します。 ListFragmentのデフォルトのListViewにListAdapterをセットしています。 */ //リストに名前を追加 songList.add(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE ))); editor.commit(); } while (cursor.moveToNext()); //setListAdapter(songList); setListAdapter(songList); cursor.close(); //ListFragmentのListViewを取得 this_ListView = this.getListView(); //ListViewのフィルタリングを有効にする this_ListView.setTextFilterEnabled(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { toolbar = (Toolbar) searchView.findViewById(R.id.toolbar); toolbar.inflateMenu(R.menu.menu_main); searchView = (SearchView)toolbar.getMenu().findItem(R.id.search_menu_search_view).getActionView(); searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { return false; } @Override public boolean onQueryTextChange(String s) { if(s == null || s.equals("")){ this_ListView.clearTextFilter(); }else{ this_ListView.setFilterText(s); } return false; } }); } } } }
###補足情報(言語/FW/ツール等のバージョンなど)
Ubuntu
androidStudio 2.1.3
android java
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/07 08:32
2016/10/07 12:33
2016/10/08 08:49