按钮的 OnClickListener 在片段中不起作用
Button's OnClickListener not working in a Fragment
我创建了一个空白 Fragment
并尝试在其布局中将 OnClickListener
添加到 Button
,但它似乎没有做任何事情。我不确定我是否将它放在正确的位置。如果我只使用 Button
的 id
而没有 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)
}
}
}
}
你扩充了你的视图布局一次,在那个布局的按钮上设置了一个点击监听器,然后你完全扔掉了它,因为你又扩充了你的布局和 return 第二个布局,因为你没有设置点击监听器。
改变
return inflater.inflate(R.layout.fragment_create_job, container, false)
至
return view
我创建了一个空白 Fragment
并尝试在其布局中将 OnClickListener
添加到 Button
,但它似乎没有做任何事情。我不确定我是否将它放在正确的位置。如果我只使用 Button
的 id
而没有 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)
}
}
}
}
你扩充了你的视图布局一次,在那个布局的按钮上设置了一个点击监听器,然后你完全扔掉了它,因为你又扩充了你的布局和 return 第二个布局,因为你没有设置点击监听器。
改变
return inflater.inflate(R.layout.fragment_create_job, container, false)
至
return view