android 设置EditText不可编辑内容,响应点击事件

本文详述了三种禁用安卓EditText编辑的方法及其局限性。包括已弃用的'editable'属性,导致字体灰化的'enabled'属性,以及结合'cursorVisible', 'focusable'和'textIsSelectable'属性的综合解决方案,确保输入框既不可编辑也不可选中,彻底解决EditText编辑禁用难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

方法1:设置

android:editable="false"

这种方法在很久之前已经被弃用了,安卓6.0之后的这句代码没有效果,这个方法无用

方法2:设置

android:enabled="false"

这个方法可以完全达到不可编辑的效果

缺点

1.字体自动变灰色(也就是虚化的效果,和正常字体颜色对比起来很容易让用户知道这个就是不可编辑的,所以个人认为某些时候还可能是个优点)

2。不可以响应点击事件

所以如果以上两个缺点不影响的话,可以使用这个方法,一句代码搞定

 

方法3:换个思路,如果输入框获取不到焦点的话,是不是就不能编辑了呢,于是尝试了

 android:focusable="false"

这种方法确实能让输入框不能获取软键盘弹出,实现不让用户通过软键盘修改输入框,但是,手贱的我(相信也会有这么闲的用户)通过不断的尝试,发现了依然可以修改输入框内容的方法,就是....长按!粘贴!而且,这个方法在点击输入框时,会有光标出现然后马上消失,显然,这样不但在逻辑上没有实现不能编辑,而且在外观上也没有满足。

有没有办法瞒住这些需求呢?

那当然有!

android:cursorVisible="false"//不显示光标
android:focusable="false"//失去焦点
android:textIsSelectable="false"//文字不可选

这下,就大功告成啦!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值