如何在 Android 中的视图上启用/禁用点击监听器?
有时,当我们遇到不需要点击某些可点击视图的情况时。就像用户没有填写强制性数据一样,所以在这种情况下,对我们的视图进行点击控制是非常有帮助的。所以在本文中,我们将学习如何在 android 中禁用/启用视图的点击监听器。
分步实施
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅在 kotlin 的 android studio 中创建新项目。
第 2 步:使用 activity_main.xml 文件
导航到app > res > layout > activity_main.xml并将以下代码添加到该文件。下面是activity_main.xml文件的代码。
XML
Kotlin
package com.ayush.gfg_exit
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
class MainActivity : AppCompatActivity() {
lateinit var tvMain : TextView
lateinit var btnView : Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tvMain = findViewById(R.id.tvMain)
btnView = findViewById(R.id.btnMain)
btnView.setOnClickListener {
Toast.makeText(this,"clicked",Toast.LENGTH_SHORT).show()
}
// btnView is initially enabled(true).
// clicking tvMain each time,
// btnView.isEnalbed will toggles.
tvMain.setOnClickListener {
btnView.isEnabled = !(btnView.isEnabled)
}
}
}
Note: We have also included vector images in the drawable folder, if want to use ImageView you also need to add a vector image.
第 3 步:使用MainActivity.kt 文件
转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。
科特林
package com.ayush.gfg_exit
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
class MainActivity : AppCompatActivity() {
lateinit var tvMain : TextView
lateinit var btnView : Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tvMain = findViewById(R.id.tvMain)
btnView = findViewById(R.id.btnMain)
btnView.setOnClickListener {
Toast.makeText(this,"clicked",Toast.LENGTH_SHORT).show()
}
// btnView is initially enabled(true).
// clicking tvMain each time,
// btnView.isEnalbed will toggles.
tvMain.setOnClickListener {
btnView.isEnabled = !(btnView.isEnabled)
}
}
}
输出: