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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • Android EditText禁止输入空格和特殊字符

    有时候我们需要限制EditText输入的字符类型,如空格,特殊字符等,这时候我们可以使用系统提供的输入过滤器--InputFilter.具体实现如下: /** * 禁止EditText输入空格 * @param editText */ public static void setEditTextInhibitInputSpace(EditText editText){ InputFilter filter=new InputFilter() { @Override public CharSequ

  • Android之EditText控制禁止输入空格和回车

    1.EdiTtext输入框控制不能输入空格,给EditText添加一个addTextChangedListener监听,如果有空格split截取截取再for循环将截取后不包含空格的字符串数组重新排列这样这个字符串就不包含空格了,最后将这个字符串重新写入EditText,这时会出现一个问题就是光标会自动跳转到第一个位置,在onTextChanged中会有一个叫做start的变量他会传入在这个空格输入之前的光标位置,EditText.setSelection(int)来改变光标的位置具体位置. 具体

  • Android实现EditText控件禁止输入内容的方法(附测试demo)

    本文实例讲述了Android实现EditText控件禁止输入内容的方法.分享给大家供大家参考,具体如下: 问题: android如何实现EditText控件禁止往里面输入内容? 修改版解决方法: EditText editText = (EditText) findViewById(R.id.editText1); editText.setKeyListener(null); 看到这个问题大家可能有点奇怪了,EditText的功能不就是往上面写入内容吗? 再者,如果真要禁止输入文本,在布局文件中

  • android同时控制EditText输入字符个数和禁止特殊字符输入的方法

    本文实例讲述了android同时控制EditText输入字符个数和禁止特殊字符输入的方法.分享给大家供大家参考.具体分析如下: 这里总结了三种方法如下: 方法一: 1. 引用两个命名空间: import android.text.TextWatcher; import android.text.Editable; 用于禁止特殊字符输入控制 定义EditText mEditText对象 2. 控制字符长度: 通过InputFilter过滤来实现字符长度控制,这样的好处是可以实现动态长度控制,而不是

  • Android中EditText禁止输入表情的实例代码

    最近在做的项目中用户编辑资料的时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断.下面就来说一下怎么在EditText中屏蔽表情吧. 网上有很多这样的列子但是一不小心就会掉进坑里面,比如继承EditText,重写addTextChangedListener()方法.可能当时你测试的时候没有什么问题,但是项目上线后就会有很多问题,错误率很高,但是查看友盟后台的时候好像是截取字符串长度方面的错误.所以建议大家不要使用那个方法了. 因为上面的方法不行,肯定要想其他

  • Android如何禁止向EditText控件中输入内容详解

    前言 在Android开发中经常会遇到EditText控件,而在App开发过程中.遇到了这样一个问题.那就是Android EditText控件如何禁止往里面输入内容? 最开始找到修改版解决方法.但是当想输入的时候就有问题了.可以参考一下.但不建议这样写 EditText editText = (EditText) findViewById(R.id.editText1); editText.setKeyListener(null); 看到这个问题大家可能有点奇怪了.EditText的功能不就是

  • Android开发之无痕过渡下拉刷新控件的实现思路详解

    相信大家已经对下拉刷新熟悉得不能再熟悉了,市面上的下拉刷新琳琅满目,然而有很多在我看来略有缺陷,接下来我将说明一下存在的缺陷问题,然后提供一种思路来解决这一缺陷,废话不多说!往下看嘞! 1.市面一些下拉刷新控件普遍缺陷演示 以直播吧APP为例: 第1种情况: 滑动控件在初始的0位置时,手势往下滑动然后再往上滑动,可以看到滑动到初始位置时滑动控件不能滑动. 原因: 下拉刷新控件响应了触摸事件,后续的一系列事件都由它来处理,当滑动控件到顶端的时候,滑动事件都被下拉刷新控件消费掉了,传递不到它的子控件

  • 微信小程序点击控件修改样式实例详解

    微信小程序点击控件修改样式实例详解 现在要在微信小程序中实现点击控件修改样式,如下: 微信小程序中不支持直接操作dom,要实现这种效果,我们需要通过设置data,然后利用数据和界面的双向绑定来实现它. 第一步:在wxss中定义被点击和未被点击的样式,如下: .service_selection .is_checked{ border: 1px solid #FE0002 ; color: #FE0002 ; background: #fff; } .service_selection .norm

  • 对PyQt5基本窗口控件 QMainWindow的使用详解

    QMainWindow基本介绍 QMainWindow主窗口为用户提供了一个应用程序框架,它有自己的布局,可以在布局中添加控件. 窗口类型介绍 PyQt5中,主要使用以下三个类来创建窗口,可以直接使用,也可以继承后再使用 QMainWindow QWidget QDialog QMainWindow QMainWindow可以包含菜单栏,工具栏,状态栏,标题栏等,是GUI程序的主窗口. 如果我们需要创建主窗口程序,就使用该类. QDialog QDialog是对话框窗口的基类,对话框一般用来执行

  • iOS阅读器与直播的控件重叠滑动交互详解

    目录 场景一 场景二 场景三 场景一 进行一个阅读器项目的开发时,遇到了一个问题, 需要在点击绿色区域时弹出一个菜单,因此在该区域加了一个View, 然而,当在这个区域滑动时,滑动手势被绿色区域拦截,手势无法传递到下面的 UIPageViewController 的 View 上 描述 阅读器上方,摇啊摇,出来一个绿色的菜单 要求可以点,也可以拖动 拖动是下方 UIPageViewController 的事情. 手势被绿色视图挡住了,需要一个透传 思路: 把绿色视图的 hitTest View

  • android如何改变editText控件中部分文字的格式

    我们在使用editText控件的时候,会遇到这样的一问题,就是我在输入时候,当我选择让文字变粗时,我输入的文字就会变粗,当我去掉选择时,再输入文字时,文字就是正常情况了. 这种情况,大家一般认为很简单啊.editText中不是有setTypeface这个方法吗.只要使用edit_temp.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));就可以了.可是问题来了.这种方法,是将editText中所有的文字的格式全变了.可是我想要的格式是

  • Android垂直滚动控件ScrollView使用方法详解

    一.简介 二.方法 1)ScrollView垂直滚动控件使用方法 1.在layout布局文件的最外层建立一个ScrollView控件 2.在ScrollView控件中加入一个LinearLayout控件,并且把它的orientation设置为vertical 3.在LinearLayout控件中放入多个装有图片的ImageView控件 三.代码实例 1.效果图 2.代码 /Ex27ScrollView/src/fry/Activity01.java <?xml version="1.0&q

  • Android进度条控件progressbar使用方法详解

    一.简介 二.方法 1)进度条ProgressBar使用方法 1.在layout布局文件中创建ProgressBar控件 <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="30&

  • Android自带倒计时控件Chronometer使用方法详解

    公司的以前的项目,看到使用了这个Android自带的倒计时控件Chronometer,现在整合了一下 先看看效果: <Chronometer android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="30dp" /> <Button android:onClick="start" andro

  • Android控件ListView使用方法详解

    Android控件ListView使用方法介绍,具体如下 一.ListView的简单用法 首先新建一个ListViewTest项目,并让Android Studio自动创建好活动.然后修改activity_main.xml中的代码,如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/re

随机推荐