在GroupAdapter的按钮上设置OnClickListener

问题描述 投票:0回答:1

我正在尝试为GroupAdapter RecyclerView内的按钮设置OnClickListener

我的代码:

class settings : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?, 
        savedInstanceState: Bundle?
    ): View? {
    super.onCreateView(inflater, container, savedInstanceState)
    val view = inflater.inflate(R.layout.fragment_settings, container, false)

    val adapter = GroupAdapter<ViewHolder>()
    adapter.add(SettingTitle("Permissions"))
    adapter.add(SettingCardCarInfo())

    //FAILED METHOD #1
    view.btn_update_settings.setOnClickListener {
        Log.d("tahoma","")
        Toast.makeText(activity, "Your settings were updated", Toast.LENGTH_SHORT).show()
    }

    //FAILED METHOD #2
    adapter.setOnItemClickListener { v, settings_end ->
        Log.d("tahoma",v.id.toString())
     }

    view.settingsRecycler.adapter = adapter

    return view
    }}

class SettingEnd : Item<ViewHolder>() {
    override fun getLayout(): Int {
        return R.layout.settings_end
    }

    override fun bind(viewHolder: ViewHolder, position: Int) {}

我尝试过的:

1-只需在按钮上调用onclick侦听器,就会给我一个空调用错误

2-使用适配器的onclick侦听器确实捕获了单击,但是忽略了可单击项的任何单击(因此对按钮没有好处)>

3-与#1相同,但通过“ OnStart”方法进行-由于该方法内部无法调用“ view”,因此无效。

4-通过Viewholder的OnBind方法调用onclick侦听器-确实起作用(我能够检测到按钮的点击),但是无法从同一适配器中的其他Viewholder中访问所需的数据,其中包含我需要的edittext去。

此时将提供任何帮助,以Kotlin syntex编写的解决方案将非常有用

我正在尝试为GroupAdapter RecyclerView内的按钮设置OnClickListener,我的代码:类设置:Fragment(){重写fun onCreateView(inflater:LayoutInflater,...

android android-studio kotlin android-recyclerview recycler-adapter
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.