app>src>main>java>com.example.tabapplication>ui>home>NotificationsFragment.kt
listにsetOnItemClickListenerを追加。
dataから元のListItemを削除して、
画面のON/OFFの状態で新しいListItemを作成し、dataに追加する。
アダプタを更新。
Listの項目修正に、removeとaddを使うのが肝でしょう。
実行
開始時にWebを表示。
戻って、Notificationsを選択。

listにsetOnItemClickListenerを追加。
dataから元のListItemを削除して、
画面のON/OFFの状態で新しいListItemを作成し、dataに追加する。
アダプタを更新。
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
notificationsViewModel =
ViewModelProvider(this).get(NotificationsViewModel::class.java)
_binding = FragmentNotificationsBinding.inflate(inflater, container, false)
val root: View = binding.root
val list = root.findViewById<ListView>(R.id.list)
val adapter = MyListAdapter(requireContext(), data, R.layout.list_item)
list.adapter = adapter
return root
}
→
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
notificationsViewModel =
ViewModelProvider(this).get(NotificationsViewModel::class.java)
_binding = FragmentNotificationsBinding.inflate(inflater, container, false)
val root: View = binding.root
val list = root.findViewById<ListView>(R.id.list)
val adapter = MyListAdapter(requireContext(), data, R.layout.list_item)
list.adapter = adapter
list.setOnItemClickListener{ _, _, position, id ->
val item = adapter.getItem(position)
val newItem = ListItem(id,item.kind,!item.checked)
data.removeAt(position)
data.add(position,newItem)
adapter.notifyDataSetChanged()
}
return root
}
実行
開始時にWebを表示。
戻って、Notificationsを選択。
