我们都知道在kotlin的activity中不再使用findViewById,可以直接用控件名,那么在Kotlin的fragment中怎么获取控件并实现他的点击事件呢?其实只要知道怎么获取控件就可以了。
Fragment中有两个方法,一个是onCreateView(),这个方法是创建布局的;还有一个方法是onViewCreat(),这个方法是在onCreateView()返回view之后执行的,并且它会传入一个view的参数,我们可以直接用它的这个参数找到控件,直接贴代码给大家看吧。
package com.example.fragment
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.fragment.app.Fragment
class LeftFragment : Fragment() {
protected var mview: View? = null
private var button:Button? =null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
mview = inflater.inflate(com.example.fragment.R.layout.left_fragment, container, false)
return mview
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
button=view.findViewById<Button>(R.id.button1)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
button?.setOnClickListener{
Log.e("FragMent","成功")
}
}
}
核心代码是这一块:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
button=view.findViewById<Button>(R.id.button1)
}
···
网友评论