現在、簡単なメモアプリを作成しております。
DBに保存されてある値をListViewに反映させるところまでできたのですが、表示されているList項目をタイトル検索したいと考えております。
SearchViewを使い、検索機能を実装したいと考えていますが、この場合の処理方法がわからない状況です。
下記コードのように、DBから様々な値を取得し、それをlistViewへと反映しております。
おそらく🌟で囲んでいる箇所をカスタムしなければいけないと考えておりますが、求めている機能を実装するにはどういったことが必要になりますでしょうか。
class HomeFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setHasOptionsMenu(true) } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { val screen1 = inflater.inflate(R.layout.fragment_home,container,false) val listView = screen1.findViewById<ListView>(R.id.listView) setListViewAdapter(listView) 🌟↓ listView.isTextFilterEnabled = true view?.findViewById<SearchView>(R.id.search) ?.setOnQueryTextListener( object : SearchView.OnQueryTextListener{ override fun onQueryTextChange(p0: String?): Boolean { if (p0.isNullOrBlank()) { listView.clearTextFilter() } else { listView.setFilterText(p0) } return false } override fun onQueryTextSubmit(arg0: String?): Boolean { return false } } ) 🌟↑ return screen1 } override fun onResume() { super.onResume() val listView = requireView().findViewById<ListView>(R.id.listView) setListViewAdapter(listView) } fun setListViewAdapter(listView: ListView) { val helper = DBHelper(requireContext()) helper.readableDatabase.use{ db -> db.query("memos", arrayOf("id","title","content","rating","date","onsen","radio","lat","long"),null,null,null,null,null,null) .use{ cursor -> val memoList = mutableListOf<ListItem>() if (cursor.moveToFirst()){ for (i in 1..cursor.count){ val memoId = cursor.getInt(0) val title = cursor.getString(1) val content = cursor.getString(2) val rating = cursor.getFloat(3) val date = cursor.getString(4) val onsen = cursor.getString(5) val radio = cursor.getString(6) val lat = cursor.getDouble(7) val long = cursor.getDouble(8) memoList.add( ListItem( memoId.toLong(), title, content, rating, date, onsen, radio, lat, long ) ) cursor.moveToNext() } } listView.adapter = CustomListAdapter(requireContext(),memoList, R.layout.list_item) } } } }
あなたの回答
tips
プレビュー