質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

2469閲覧

realmを利用したRecycleviewでSearchViewを使いたい

aNomoto

総合スコア12

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

1クリップ

投稿2018/11/19 15:11

前提・実現したいこと

料理メニューのリストを表示するアプリを作成しています。
メニューデータはrealm(MainDatabase)に登録してある状態で
recycleviewの表示まではできましたがsearchviewの実装ができません。

発生している問題・エラーメッセージ

realmを利用したrecycleviewでのsearchviewの実装方法がわからず困っています。

該当のソースコード

kotlin

1class CustomRealmRecyclerViewAdapter (private val context: Context, var collection: OrderedRealmCollection<MainDataBase>?, private val autoUpdate: Boolean) 2 : RealmRecyclerViewAdapter<MainDataBase, CustomRealmRecyclerViewAdapter.CustomViewHolder>(collection, autoUpdate) { 3 4 override fun getItemCount(): Int { 5 return collection?.size ?: 0 6 } 7 8 override fun onCreateViewHolder(parent: ViewGroup, position: Int): CustomViewHolder { 9 val view = LayoutInflater.from(context).inflate(R.layout.view_cell, parent, false) 10 return CustomViewHolder(DataBindingUtil.bind(view)!!) 11 } 12 13 override fun onBindViewHolder(viewHolder: CustomViewHolder, position: Int) { 14 val Maindata = collection?.get(position) 15 viewHolder.binding.cellName.text = Maindata?.title 16 viewHolder.binding.cellAge.text = Maindata?.id.toString() 17 viewHolder.binding.cellLayout.setBackgroundColor(if (position % 2 == 0) Color.LTGRAY else Color.WHITE) 18 } 19 20 class CustomViewHolder(val binding: ViewCellBinding): RecyclerView.ViewHolder(binding.root) 21} 22

kotlin

1//ItemListFragment 2class ItemListFragment : Fragment(){ 3 private lateinit var realm:Realm 4 val realmResults = realm.where(MainDataBase::class.java).findAll() 5 6 private var mView: View? = null 7 private var recyclerView: RecyclerView? = null 8 private val items: OrderedRealmCollection<MainDataBase> = realmResults 9 private var adapter: CustomRealmRecyclerViewAdapter? = null 10 11 12 13 override fun onCreateView(inflater: LayoutInflater?, 14 container: ViewGroup?, 15 savedInstanceState: Bundle?): View { 16 super.onCreateView(LayoutInflater.from(context), container, savedInstanceState) 17 18 mView = inflater!!.inflate(R.layout.view_cell, container, false) 19 val linerLayoutManager = LinearLayoutManager(mView!!.context) 20 recyclerView = mView!!.findViewById(R.id.recyclerView) 21 recyclerView!!.layoutManager = linerLayoutManager 22 23 val dividerDecoration = DividerItemDecoration(recyclerView!!.context, linerLayoutManager.orientation) 24 recyclerView!!.addItemDecoration(dividerDecoration) 25 26 return mView!! 27 } 28 29 override fun onActivityCreated(savedInstanceState: Bundle?) { 30 super.onActivityCreated(savedInstanceState) 31 realm= Realm.getDefaultInstance() 32 adapter=CustomRealmRecyclerViewAdapter(recyclerView!!.context, items, false) 33 recyclerView!!.adapter = adapter 34 35 } 36 37 fun searchRequest(text: String) { 38 val adapter = adapter 39 if (adapter != null) { 40 adapter.collection = items.filter(text)://ここで 41 adapter.notifyDataSetChanged() 42 } 43 } 44}

試したこと

https://qiita.com/Xdaichi/items/e6234b336219120a76e4
上記のサイトを参考にソースコードを作成しましたが、Searchviewの仕様が
realmを使用したAdapterと噛み合わずコンパイルができませんでした。
ItemFlagmentのsearchRequest内でfilterのコンパイルができず配列や引数を変更してみましたが改善されませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

質問内容に関しては自己解決していませんが、代改案を見つけ、検索フォームの実装ができたため解決とさせていただきます。二週間あまりが経ち、改めて質問文を見直すとお世辞にも良い質問内容ではなかったと反省しています。内容に目を通していただいた方々本当にありがとうございました。

投稿2018/12/06 14:58

aNomoto

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問