Android如何禁止向EditText控件中输入内容详解
作者:dwtedx 发布时间:2021-07-29 05:01:11
标签:android,edittext控件,禁止
前言
在Android开发中经常会遇到EditText控件,而在App开发过程中、遇到了这样一个问题、那就是Android EditText控件如何禁止往里面输入内容?
最开始找到修改版解决方法、但是当想输入的时候就有问题了、可以参考一下、但不建议这样写
EditText editText = (EditText) findViewById(R.id.editText1);
editText.setKeyListener(null);
看到这个问题大家可能有点奇怪了、EditText的功能不就是往上面写入内容吗?再者、如果真要禁止输入文本、在布局文件中添加
android:focusable="false"
或者在代码中使用、不就Ok了?
editText.setFocusable(false)
项目需求是这样的、在EditText后面跟一个CheckBox、勾选CheckBox可以输入、否则不可以输入、另外也有这种需求、比如已经被setText()内容、则需要禁止输入、防止它被修改、
如果没有显示内容、则将EditText设置为可输入状态
经过测试验证:setFocusable方法的效果只有第一次使用时有效、也就是说若在布局文件里面设置:
android:focusable="false"
即使你在代码中设置此控件属性:editText.setFocusable(true);
也不能对它进行编辑、即setFocusable方案不可行、经过摸索得出可行方案利用setInputType来实现、代码如下
editText.setInputType(InputType.TYPE_NULL);//来禁止手机软键盘
editText.setInputType(InputType.TYPE_CLASS_TEXT);//来开启软键盘
应用程序默认为开启状态、特别注意:这种方法也只能禁止软键盘、若手机自带硬键盘、此方案失效
public class EditTextTest extends Activity
{
/** test EditText forbid input function demo */
EditText editText;
boolean flag = true;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) findViewById(R.id.editText1);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
if (flag==true)
{
System.out.println("开启软键盘");
editText.setInputType(InputType.TYPE_CLASS_TEXT);
flag = false;
}else
{
System.out.println("禁止软键盘");
editText.setInputType(InputType.TYPE_NULL);
flag = true;
}
}
});
}
}
来源:http://dditblog.com/itshare_721.html


猜你喜欢
- JAVA 中Spring的@Async用法总结引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方
- 前言关键字Final不仅可以用来修饰变量,而且对类及其方法的继承也有很大的影响,本文将从类与方法两个方面介绍final关键字的功能。Fina
- Spring Expression Language (SpEL)是强大的表达式语言,支持查询、操作运行时对象图,以及解析逻辑、算术表达式。
- 一、项目简述功能包括(管理员和用户角色): 酒店预订,酒店管理,员工管理,入住原理,订单管理, 楼层管理,退房管理,营业额报表等等。二、项目
- 命令仓库 Ctrl + Shift + A 可以搜集对应命令快捷键1、基础快捷键1.1、无处不在的跳转项目之间的跳转1.1.1、项目项目之间
- 什么是容器?在Java的GUI界面设计中,关于容器的理解,从字面意思我们就可以认为它是存放控件的地方,而这个地方依托在窗体之上,常用的容器是
- HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决
- 此文通过一段代码来展示java获取相关参数的方法分享给大家:public static void main(String[] args) {
- 背景:今天新生成一个springboot项目,然而启动日志,还有mybatis的详细日志无法打印出来,自写程序中打印的日志可以输出;网上找了
- 本文实例讲述了Java抛出异常与自定义异常类。分享给大家供大家参考,具体如下:异常处理常用方法:常用的异常处理方法有:一、try()catc
- 参考视频:https://www.bilibili.com/video/BV1Bq4y1Q7GZ?p=4通过视频的学习和自身的理解整理出的笔
- 初学Android编程,Android SDK中提供的Sample代码自然是最好的学习材料。 
- 为什么我们需要IntentService ?Android中的IntentService是继承自Service类的,在我们讨论IntentS
- 有时我们获取到了页面需要在Java代码中进行解析,获取html中的数据,Jsoup是一个很方便的工具。一、什么是Jsoup?官网网站:htt
- wait()方法表示,放弃当前对资源的占有权,等啊等啊,一直等到有人通知我,我才会运行后面的代码。notify()方法表示,当前的线程已经放
- 目录1 简介2 Condition的实现分析等待队列等待(await):AbstractQueuedLongSynchronizer中实现C
- 本文实例讲述了C#启动进程的几种常用方法。分享给大家供大家参考。具体如下:1.启动子进程,不等待子进程结束private void simp
- 本文实例为大家分享了Android实现快递物流时间轴效果展示的具体代码,供大家参考,具体内容如下首先,这篇参考了别人的代码。根据自己的项目需
- @Profile注解详解@Profile:Spring为我们提供的可以根据当前环境,动态的激活和切换一系列组件的功能;开发环境develop
- delphi dll 源码:library dllres; type char1