【问题标题】:Button's OnClickListener not working in a Fragment [duplicate]按钮的 OnClickListener 在片段中不起作用 [重复]
【发布时间】:2022-02-21 23:01:30
【问题描述】:

我创建了一个空白Fragment 并尝试在其布局中将OnClickListener 添加到Button,但它似乎没有做任何事情。我不确定我是否把它放在正确的地方。如果我只使用Buttonid 而不使用view,当我打开这个Fragment 时应用程序就会崩溃。

class CreateJobFragment : Fragment() {
        // TODO: Rename and change types of parameters
        private var param1: String? = null
        private var param2: String? = null
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            arguments?.let {
                param1 = it.getString(ARG_PARAM1)
                param2 = it.getString(ARG_PARAM2)
            }
        }
    
        override fun onCreateView(
            inflater: LayoutInflater, container: ViewGroup?,
            savedInstanceState: Bundle?
    
        ): View? {
            // Inflate the layout for this fragment
            val view: View = inflater!!.inflate(R.layout.fragment_create_job, container, false)
            view.create_btn.setOnClickListener {
                Log.d("console", "Button pressed")
            }
            return inflater.inflate(R.layout.fragment_create_job, container, false)
        }
    
        companion object {
            @JvmStatic
            fun newInstance(param1: String, param2: String) =
                CreateJobFragment().apply {
                    arguments = Bundle().apply {
                        putString(ARG_PARAM1, param1)
                        putString(ARG_PARAM2, param2)
                    }
                }
        }
    }

【问题讨论】:

  • 要从视图中获取按钮对象,您应该使用view.findViewById<Button>(R.id.create_btn) 然后在此调用 setOnClickListener
  • ^ 那个,还有stackoverflow.com/a/18894294
  • 是的,我试过了,但还是不行。我认为是 viewBinding 允许我使用仅带有 id 的元素。
  • 您似乎在使用已弃用的合成,而不是视图绑定。

标签: android kotlin button fragment onclicklistener


【解决方案1】:

您膨胀了一次视图布局,在该布局中的按钮上设置了一个单击侦听器,然后您将其完全丢弃,因为您再次膨胀了您的布局并返回了您没有设置的第二个布局点击监听器。

改变

return inflater.inflate(R.layout.fragment_create_job, container, false)

return view

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2020-04-03
    • 2015-06-03
    • 2023-03-30
    相关资源
    最近更新 更多