布局文件

    <TextView
        android:id="@+id/test"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:gravity="center"
        android:text="测试点击事件"
        android:textSize="18sp" />

方式一:匿名内部类

tv_test.setOnClickListener {
    Toast.makeText(this, "点击了",Toast.LENGTH_SHORT).show()
}

方式二:实现View.OnClickListener接口的onClick方法

class MainActivity : AppCompatActivity(), View.OnClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        tv_test.setOnClickListener(this)
    }

    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.tv_test	->
                Toast.makeText(this, "点击了", Toast.LENGTH_SHORT).show()
        }
    }

}

方式三:控件添加onClick属性,对应activity或者fragment中添加对应方法

添加onClick属性后的布局文件

    <TextView
        android:id="@+id/test"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:gravity="center"
        android:onClick="testClick"
        android:text="测试点击事件"
        android:textSize="18sp" />

添加后,“testClick”这里会出现红色下划线,因为对应activity或者fragment中没有对应的方法,可以alter+enter提示,选中红框中自动生成,也可手动添加
在这里插入图片描述
添加对应方法后的activity

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    fun testClick(view: View) {
        Toast.makeText(this, "点击了", Toast.LENGTH_SHORT).show()
    }

}

仅此记录,如有问题还请提出,谢谢

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐