📜  如何在 Android 中的视图上启用/禁用点击监听器?

📅  最后修改于: 2022-05-13 01:55:10.101000             🧑  作者: Mango

如何在 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)
        }
    }
  
}


第 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)
        }
    }
  
}

输出: