android中控制EditText不可编辑的问题

禁用EditText的编辑功能 此外,为了让用户清楚地知道EditText已经处于不可编辑的状态,我们可以修改其外观,使其看起来与普通文本一样。最后,为了完善用户体验,我们还可以设置EditText为只读的状态,以防止用户通过长按文本来弹出剪贴板菜单。通过以上操作,我们实现了将EditText设置为不可编辑状态的功能。当然,如果我们希望在将EditText恢复为可编辑状态时,只需要调用setEnabled(true)即可。在Android开发中,有时候我们希望将EditText控件设置为不可编辑的状态,即禁止用户对其进行输入和编辑操作。 阅读详情

本来这个也不算个大问题,但我开发中确实遇到了,特开此贴,希望能帮到一些android新手。

可能有人会说,设置EditText不可编辑那还不简单,直接设置

Xml代码 复制代码  收藏代码
  1. android:editable="false"  

 就可以了,如果你一直是这么做的,那么你就不用看下去了,在android2.2中直接设置  android:editable="false"是不起作用的,(我在模拟器和真机环境中测试都不起作用) 在android2.2中 editable是depreceated的,大家可以看看api文档http://developer.android.com/reference/android/R.attr.html#editable 。

 

     那么我们是不是就不可以设置EditText的编辑状态呢,当然不是,我们可以设置

 

Xml代码 复制代码  收藏代码
  1. android:focusable="false"  

   这是什么意思呢,很简单,不让它获得输入焦点(不要告诉我你不知道什么是焦点),既然得不到焦点,当让就无法输入了,我在http://stackoverflow.com/questions/4824676/making-not-editable-edittext-component 上也到的这样的解决方式。

   那么为什么要这么做呢,为什么不要   android:editable了呢,这是一个用户体验的问题。android是一个移动平台,大多数是没有键盘的,都是屏幕软键盘,如果你设置EditText为不可编辑,那么就不应该打开软键盘,而不是打开软键盘了又无法输入。

 

   似乎到了这里就没有说的了,请你不要着急,这样设置后有一个问题,无法选中EditText的内容,因为它无法获得焦点 ,这个问题我也不知道怎么解决,希望大大们能给解决下。

 

    如何在java代码中控制EditText不可编辑呢,因为EditText没有setEditable这样的方法,这个问题坛子里已经有很多高手解决了,使用 InputFilter

具体如下:

 

Java代码 复制代码  收藏代码
  1. 你的EditText.setFilters(new InputFilter[] {   
  2.             new InputFilter() {   
  3.                 public CharSequence filter(CharSequence source, int start,   
  4.                         int end, Spanned dest, int dstart, int dend) {   
  5.                     return source.length() < 1 ? dest.subSequence(dstart, dend) : "";   
  6.                 }   
  7.             }   
  8.         });  
你的EditText.setFilters(new InputFilter[] {
			new InputFilter() {
				public CharSequence filter(CharSequence source, int start,
						int end, Spanned dest, int dstart, int dend) {
					return source.length() < 1 ? dest.subSequence(dstart, dend) : "";
				}
			}
		});

  (申明下,这个我是在坛子中看到的,本人测试有效) 这样做就可以在java代码中动态设置EditText的编辑状态了,但这个无法解决用户体验的问题,软键盘依然会打开,但无法输入,但可以选择内容。

【位运算进阶之----右移(>>)】 😄嘻嘻,朋友们,大家好!昨天我们学习了左移,今天我们来谈谈右移>>。⭐️简单来说,,也就是去掉一个数的二进制表达的末位,右移一位就去掉一位,右移两位就去掉两位。下面就让我们来详细看看吧! 阅读详情

相关推荐

Claude skill-creator插件深度解析:从创建到优化的完整技能工程化体系

摘要:skill-creator是Anthropic推出的Claude技能开发插件,提供从创建到优化的全流程工程化支持。其核心架构采用渐进式披露机制和多Agent协作模式,包含Grader、Analyzer等专业评估组件。该插件支持自动化评测系统,通过测试用例管理、并行执行和结果聚合实现技能验证;提供迭代优化算法,基于数据驱动改进技能性能。典型应用场景包括标准化技能开发、自动化测试验证和触发优化,显著降低开发门槛并提升技能质量。

虚心若愚 989

android设置EditText内容不可编辑和点击事件

2,不可编辑且不需要获取焦点。1,不可编辑且需要获取焦点。

qq_55888300的博客 4944

GitHub工业级开源利器:StreamPipes如何简化工业物联网数据分析

Apache StreamPipes是一款GitHub上的工业级开源利器,旨在简化工业物联网数据分析。它通过图形化界面连接各类工业协议数据源,以拖拽方式构建流处理管道,并实现实时可视化,有效降低了数据分析的技术门槛,让业务人员也能自助完成从数据接入到洞察的全流程。

weixin_29279153的博客 199

android edittext_Android 不可编辑的 EditText

项目中有时会需要用到一个不可编辑的 EditText,用于展示,很奇怪的需求对吧,明明就应该使用 TextView 来做展示,使用 EditText 来做输入,但现实就是可能为了 UI 统一,又或者是其他乱七八糟的原因,就得这么实现。比如之前在『关于「PassBox」的开发笔记』和『关于「HacppleStore」的开发笔记』中提到,我就是这么干的。那么在 Android 中应如何将 E...

weixin_39910963的博客 683

基于docker进行安装部署seata,解决Seata的版本与Nacos的版本不匹配

本文分享了在Docker环境下部署Seata时遇到Nacos 3.x API不兼容问题的解决方案。由于Seata 2.0.0内置的nacos-client 1.4.2无法调用Nacos 3.x重构后的接口,导致注册失败。通过下载Seata 2.6.0源码自行构建Docker镜像,并调整启动方式(直接执行Java命令绕过Shell脚本),最终成功实现与Nacos 3.x的集成。关键步骤包括:创建自定义Dockerfile、配置application.yml、处理启动脚本兼容性问题,最终采用java直接运行方案

Dd52698的博客 414

STM32F103 RTC闹钟唤醒Stop模式的EXTI17中断实现

本文详细介绍了STM32F103如何通过RTC闹钟触发EXTI17中断实现从Stop模式的高效唤醒。针对低功耗应用场景,提供了完整的硬件配置、CubeMX设置及代码实现方案,包括时间格式转换、中断处理和功耗优化技巧,帮助开发者可靠实现定时唤醒功能。

ol78901234的博客 231

Android EditText代码设置不可编辑不可输入

直接设置android:editable="false",虽然说该属性已经废弃,但是还是可以生效。其他方式,通过设置focusable和focusableInTouchMode为false。但是EditText中没有对应的setEditable之类的方法来通过代码设置不可编辑。

野猿新一 1866

【机械臂算法】基于最小惯性参数集的动力学辨识仿真实践

本文深入探讨了机械臂动力学参数辨识的核心挑战与解决方案,重点阐述了基于最小惯性参数集的理论与方法。通过分析PUMA560实例,详细介绍了利用QR分解法或符号推导法获取可辨识参数集,并系统讲解了从激励轨迹设计、仿真数据采集、线性系统求解到模型验证的完整实践流程,为高精度动力学建模与控制奠定了坚实基础。

weixin_29054399的博客 378

Android ListView布局嵌套EditText不能输入文本

今天才发现ListView与EditText嵌套时会出现EditText不能进行输入的情况,这是因为EditText此时无法获得焦点,这样我们可以通过设置descendantFocusability属性来使EditText强制获得焦点。

caizhihong的专栏 681

【毕设实战】基于YOLOv8的HRSC2016船舶智能检测系统开发全指南(含可视化UI界面,打造海事领域高分毕设)

亲爱的同学,通过这篇教程,你已经掌握了“基于YOLOv8的HRSC2016微小船只检测系统”从数据集处理、模型训练到Tkinter界面开发的全流程。这个课题既贴合“海事智能化”的产业战略,又涵盖了“目标检测、深度学习、界面开发”等多个毕设评分点,非常适合作为计算机或海事工程专业的毕业设计。在实践中,你可能会遇到“海面背景复杂导致船只漏检”“微小船只识别精度不足”“UI与模型推理同步卡顿”等挑战——别担心,这些都是技术成长的必经之路。

know_F0727的博客 132

23、变压器与电抗器知识详解

本文详细介绍了电力变压器的基本原理、等效电路、测试方法及多种运行方式,涵盖双绕组与自耦变压器的建模与应用。深入探讨了变压器极性判断、并联运行条件、电压调节技术,并扩展至非线性、磁滞、EMTP和高频模型,用于瞬态分析。同时阐述了地磁感应电流(GIC)的影响及对偶建模方法。最后系统介绍了各类电抗器的应用场景与特性,包括限流、无功补偿、滤波及特殊用途电抗器,全面覆盖电力系统中变压器与电抗器的核心知识。

eee77的博客 150

android输入框不可编辑,android中控制EditText不可编辑的问题

1、首先想到在xml中设置android:editable="false",但是如果想在代码中动态设置可编辑状态,没有找到对应的函数2、然后尝试使用editText.setFocusable(false);和editText.setEnabled(false);设置不可编辑状态;editText.setFocusable(true);和 editText.setEnabled(true);设置可编...

weixin_35407400的博客 2420

信号完整性之串扰

1.前言 串扰(Crosstalk)是指信号线之间由互感、互容而引起的耦合,由于这种耦合的存在,当某一信号线发生电平翻转时,在附近的信号线上将感应到一定程度的噪声。 2. 电路设计中抑制串扰的方法 2.1 控制高速信号线之间的间距和平行走线的长度 多个高速信号长距离平行走线时,其间距应遵循3W原则,如下图所示: 3W原则指两相邻信号线的中心间距不少于信号线宽度的3倍,当满足3W原则时,信号线之间...

sinat_15677011的博客 1万+

android2.2中EditText不可编辑的问题

本来这个也不算个大问题,但我开发中确实遇到了,特开此贴,希望能帮到一些android新手。 可能有人会说,设置EditText不可编辑那还不简单,直接设置 android:editable="false"  就可以了,如果你一直是这么做的,那么你就不用看下去了,在android2.2中直接设置  android:editable="false"是不起作用的,(我在模拟器...

魔月 153

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

EditText设置可以编辑和不可编辑状态

1、首先想到在xml中设置android:editable="false",但是如果想在代码中动态设置可编辑状态,没有找到对应的函数 2、然后尝试使用editText.setFocusable(false);和editText.setEnabled(false);设置不可编辑状态;editText.setFocusable(true);和 editText.setEnabled(true);设置...

weixin_34232363的博客 362

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android设置EditText为不可编辑状态

最近做一个项目,需要动态设置EditText为不可编辑状态,根据某些条件判断,设置EditText为可编辑状态:        eidtext.setFocusableInTouchMode(false);//不可编辑        eidtext.setKeyListener(null);//不可粘贴,长按不会弹出粘贴框        eidtext.setClickable(false);//...

墨轩 4万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

解决android中将EditText改成不可编辑的状态

要想实现一个将EditText变成不可编辑的状态,发现一个好方法,对于单独的EditText控件我们可以单独设置 1.首先想到在xml中设置Android:editable="false",但是如果想在代码中动态设置可编辑状态,没有找到对应的函数。 2。然后尝试使用editText.setFo...

chunxue9790的博客 348

Android Edittext 不可编辑、可以编辑,代码控制

private EditText mET; mET.setFocusable(false);//设置为不可编辑 mET.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //下面的顺序不能乱 mET.setFocusab...

mcl_123456的博客 2562

EditText设置为不可编辑

----------------用Java代码实现EditText不可编辑-过滤器------------------------- private void setEditable(boolean value){     if(value){         et_com

HappyDelano的专栏 3623

android 设置EditText可输入和不可输入状态

//设置EditText可输入和不可输入状态 private void editTextable(EditText editText, boolean editable) { if (!editable) { // disable editing password editText.setFocusable(false); editText.setFocus

oSanCunTianTang的博客 6719

Android EditText设置可以编辑和不可编辑状态

可编辑状态: editText.setFocusable(false); editText.setFocusableInTouchMode(false); 设置可编辑状态: editText.setFocusableInTouchMode(true); editText.setFocusable(true); editText.requestFocus();

冰蓝 1万+

android edittext光标问题

有时候需要让光标显示在EditText的指定位置或者选中某些文本。同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点。 1. 设置光标到指定位置 EditText et = (EditText) findViewById(R.id.etTest); et.setSelection(2); PS:当内容过多时,可通过设置光标位置来让该位置的内容显示在屏幕上。

学习记录 7993

android_EditText设置可以编辑和不可编辑状态

1、首先想到在xml中设置android:editable=”false”,但是如果想在代码中动态设置可编辑状态,没有找到对应的函数 2、然后尝试使用editText.setFocusable(false);和editText.setEnabled(false);设置不可编辑状态;editText.setFocusable(true);和 editText.setEnabled(true);

u011404611的专栏 4657
上一篇: Android ListView实现Table行列效果
下一篇: android中自定义checkbox大小和图片
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值