完了ボタンが押された場合flagを1にしてそのIDに該当するファールドの背景色を変更を行いたいのですが、可能でしょうか?RecyclerViewを使用しています。
edit.kt
1 /////////////完了ボタンが押された場合/////////////////////////// 2 comp.setOnClickListener { view: View -> 3 realm.executeTransaction { db: Realm -> 4 db.where<Schedule>().equalTo("id", scheduleId) 5 val schedule = db.where<Schedule>() 6 .equalTo("id", scheduleId).findFirst() 7 schedule?.flag = 1 8 9 } 10
adpter
1 class ScheduleAdapter(data: OrderedRealmCollection<Schedule>) : 2 RealmRecyclerViewAdapter<Schedule, ScheduleAdapter.ViewHolder>(data, true) { 3 4 private var listener: ((Long?) -> Unit)? = null 5 fun setOnItemClickListener(listener: (Long?) -> Unit) { 6 this.listener = listener 7 } 8 9 init { 10 setHasStableIds(true) 11 } 12 13 class ViewHolder(cell: View) : RecyclerView.ViewHolder(cell) { //RecylerViewを継承 14 val date: TextView = cell.findViewById(android.R.id.text1) 15 val title: TextView = cell.findViewById(android.R.id.text2) 16 } 17 18 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ScheduleAdapter.ViewHolder { 19 val infrater = LayoutInflater.from(parent.context) //インスタンス生成 20 val view = infrater.inflate( //ビューにレイアウトXMLを適用 21 android.R.layout.simple_list_item_2, 22 parent, false 23 ) 24 return ViewHolder(view) 25 } 26 27 ////////////////////////// //データを取り出し表示させるための処理///////////// 28 override fun onBindViewHolder(holder: ScheduleAdapter.ViewHolder, position: Int) { 29 val schedule: Schedule? = getItem(position) 30 holder.date.text = DateFormat.format("yyyy/MM/dd", schedule?.date) 31 holder.title.text = schedule?.title 32 holder.itemView.setOnClickListener { 33 listener?.invoke(schedule?.id) 34 } 35 } 36 37 override fun getItemId(position: Int): Long { //getItemIdをオーバーライド 38 return getItem(position)?.id ?: 0 39 } 40}
質問するときのヒント( https://teratail.com/help/question-tips )をよく読んで質問内容を整理しましょう。
flagとは何か、伝わるようにしましょう。背景色が変わる条件をしっかり整理しましょう。また、どこまで理解して何が分からないのかなど整理しましょう。
あなたの回答
tips
プレビュー