首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法防止句点自动输入到EditText中?

是的,可以通过以下几种方式来防止句点自动输入到EditText中:

  1. 使用InputFilter:可以通过设置InputFilter来过滤输入字符。创建一个自定义的InputFilter,在filter方法中判断输入的字符是否为句点,如果是则返回空字符串,否则返回null。然后将该InputFilter应用到EditText中。
代码语言:txt
复制
InputFilter filter = new InputFilter() {
    public CharSequence filter(CharSequence source, int start, int end,
            Spanned dest, int dstart, int dend) {
        if (source.equals(".")) {
            return "";
        }
        return null;
    }
};

editText.setFilters(new InputFilter[] { filter });
  1. 使用TextWatcher:可以通过添加TextWatcher来监听EditText的文本变化,并在onTextChanged方法中判断输入的字符是否为句点,如果是则移除该字符。然后将该TextWatcher应用到EditText中。
代码语言:txt
复制
TextWatcher watcher = new TextWatcher() {
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (s.toString().contains(".")) {
            editText.removeTextChangedListener(this);
            editText.setText(s.toString().replace(".", ""));
            editText.setSelection(editText.getText().length());
            editText.addTextChangedListener(this);
        }
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    public void afterTextChanged(Editable s) {
    }
};

editText.addTextChangedListener(watcher);
  1. 使用IME Options:可以通过设置EditText的IME Options来改变软键盘的行为。将IME Options设置为IME_ACTION_DONE或IME_ACTION_NEXT,这样在输入句点后,点击软键盘的完成或下一步按钮时,句点不会自动输入到EditText中。
代码语言:txt
复制
<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"
    android:inputType="text" />

以上是防止句点自动输入到EditText中的几种方法,根据具体需求选择适合的方式即可。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android开发笔记(一百三十八)文本输入布局TextInputLayout

文本输入布局TextInputLayout TextInputLayout是MaterialDesign库对编辑框EditText进行增强的一个控件。...这个好坑,既然出现问题,就想办法解决它,解决办法如下所示(以下方案任选其一): 1、在布局文件EditText控件设置maxLength属性,指定允许输入字符串的最大长度。...不知大家有没有发现,往编辑框输入文字,手机在竖屏与横屏两种情况下的页面展示是不一样的。...强行把提示文字从编辑框内挪到了编辑框上方,可这种做法没考虑横屏时候的情况,所以造成横屏反而不显示提示文字的结果。...那么TextInputEditText就是为了让横屏时也要显示提示文字,具体做法是把布局文件EditText名称换成“android.support.design.widget.TextInputEditText

1.8K30
  • Android开发笔记(一百四十六)仿支付宝的支付密码输入

    然而,计划赶不上变化,开发工作总有一些现有控件无法直接实现的需求,就像支付宝的支付密码输入框,在一排方格区域内输入并显示密文密码,每个密文字符之间又有竖线分隔。...; 4、密码不显示明文,而是显示密文,比如点号(·)或者星号(*); 5、输完六位密码,应自动触发密码输入完成的事件; 因为支付密码允许一位一位输入,也允许一位一位删除,所以它本质上还是一个编辑框,也就是说...,支付密码的输入框必须实现EditText的功能。...TextView队列的各项文本显示; 上述的改造内容,大部分都有可以直接调用的函数,但有两个功能的实现要特别注意: 首先,对于密文字符,Android默认显示点号(·),可显示星号(*)也很常见,那有没有办法把系统默认的点号替换为星号呢...其次,对于支付密码输入框的焦点获得问题,因为该输入框内部集成了EditText,所以不管是给输入框注册点击事件还是触摸事件,手势焦点都会被内部的EditText所抢占,使得密码输入框反而不会响应点击和触摸事件

    1.9K30

    自定义键盘(二)

    不知道你有没有注意应用市场上有这样一类app:第三方输入法app,比如讯飞输入法,搜狗输入法; 第三方输入法app:设置完成之后,手机上所有的输入框都会弹出第三方键盘。...安装第三方输入法的手机,可以在设置–高级设置-语言和输入法中找到。—-系统级别的输入法 那么有没有app级别的输入法扩展呢?...如果有的话会让关于键盘的开发变得更加容易,于是,笔者就去下载一些炒股app,它们都是实现了类似app级别的键盘,发现设置并未找到他们关于键盘的定义。笔者也没有google关于app级别的键盘。...3.2解决和系统键盘显示冲突 这就需要我们把页面中所有的EditText传递封装的工具类,调用这个方法隐藏系统键盘 /** * 隐藏系统键盘 * * @param editText */ public...这就需要我们在我们传递过来的布局文件添加一个宽高是0的EditText。让用户点击完成的时候,这个EditText获取焦点。

    96420

    app加固_360加固保手机版

    一、激活成功教程者如何盗取移动支付用户账号密码–防劫持和校验技术 1.界面劫持:在登陆界面上布置一层透明的UI界面,当用户输入密码时是输入在透明UI界面上,获取用户账户密码。...层(系统运行库层) 二、激活成功教程者如何盗取移动支付用户账号密码–自定义键盘 Android软键盘采用了一套统一的通信机制,通过重载BaseInputConnection类方法,可以拦截输入字符...,EditText类也有类似的监听拦截方法。...关于第三方的加固方案 安卓dalvik虚拟机要求dex文件在内存以明文形式存在,那么任何加壳方法,到头来到了内存还是明文存在,各种dump方法终究是可以获得它的.那么APP究竟应该如何加固才能防止APP...壳被脱掉后也是有办法阻碍篡改的,关键就在于反二次打包,可以通过在原生层验证签名来实现。

    6.1K30

    高仿Android「填空题」控件:手撸一个炫酷的View动效!

    要求可以和普通TextView一样展示普通的文字,同时又包含可以编辑的部分,类似EditText。如下: ? 看到这个,第一反应就是,这不合理啊,又是展示,又是可编辑,又是换行,没办法实现啊!...这里就涉及一个文字宽度计算问题 在Android如何计算文字的宽度呢?...而在绘制文字的过程,我们可以将可编辑文字段的坐标信息记录下来,那么在点击的时候,就可以判断有没有触摸碰撞,如果有,那么就可以弹出输入法。...通常,需要一个可输入文字的控件时,我们很少自己去定义一个控件,而是直接使用EditText,以至于我们几乎认为只有EditText可以接收输入输入。...,会通过这个方法将文字传输给控件 4.光标 1)绘制 普通的EditText输入时,都会有一个光标,用于表示输入或删除的位置。

    1.7K30

    Android使用TextInputLayout创建登陆页面

    创建完项目之后,在主activity把Android Studio自动产生的onCreateOptionsMenu 和onOptionsItemSelected方法删掉。...就如你知道的,这个属性允许你在EditText的内容为空的时候显示一个自定义的提示。一旦用户开始输入,hint会消失。这并不理想,因为用户丢失了他们输入信息的上下文提示。...一个单一的EditText输入文字的时候会隐藏hint,而被包含在TextInputLayoutEditText则会让hint变成一个在EditText上方的浮动标签。...通过验证输入,你可以防止用户输入无效的邮箱地址或者是太短的密码。如果没有验证,后台可能反馈回不正确的结果呈现给用户。对于用户来说既浪费了时间又体验不好。在发送到后台之前你应该先检查输入的正确性。...不幸的是,如果你不告诉它,安卓不会自动的隐藏虚拟键盘。在onClick方法体调用hideKeyboard。

    1.6K10

    TextInputLayout-Android M新控件

    Introduction 同样的,这个控件也是Material Design的控件。 Google I/O 2015 ,谷歌意识向后兼容是实现material design的重要部分。...:design:23.1.1' 如果Gradle没有自动询问同步项目,选择build菜单的Make module ‘app’ ,或者按Ctrl +F9。...一个单一的EditText输入文字的时候会隐藏hint,而被包含在TextInputLayoutEditText则会让hint变成一个在EditText上方的浮动标签。...通过验证输入,你可以防止用户输入无效的邮箱地址或者是太短的密码。如果没有验证,后台可能反馈回不正确的结果呈现给用户。对于用户来说既浪费了时间又体验不好。在发送到后台之前你应该先检查输入的正确性。...不幸的是,如果你不告诉它,安卓不会自动的隐藏虚拟键盘。在onClick方法体调用hideKeyboard。

    76820

    Android如何自定义EditText光标与下划线颜色详解

    前言 最近在写些小Demo复习基础,在用到EditText的时候突然发现之前几乎没有注意它的光标和下划线的颜色,于是花了不少时间,看了不少博客,现在就来总结和分享一下收获,话不多说了,来一起看看详细的介绍...3、取消背景后的EditText 第2节,我们将属性android:textCursorDrawable 设置为“@null”之后发现光标的样式会变得跟文字的颜色一样,那么如果将整个EditText...5、全局修改EditText颜色 前面的做法都是针对一个EditText来修改的,如果需要把项目中所有的EditText的颜色都改掉的话,那这样做的话工作量就太大了。有没有办法可以一脚定江山的呢?...EditText是一个输入框,我们可以这样理解:下划线无非就是给输入框的下边框加一条线。这个用Android的layer-list(图层)就可以做到。...效果我们是实现了,但是这样一来Activity的代码显得太冗长,因此我们可以将选中和未选中的状态封装到状态选择器

    5.8K51

    Android富文本开发

    当前的编辑器已经添加了多个输入文本EditText,现在的问题在于需要记录当前编辑的EditText,在应用样式的时候定位输入的控件,在编辑器添加一个变量lastFocusEdit。...有没有办法添加一定的过度效果,让实现的效果显得圆滑呢? LayoutTransition简单介绍 LayoutTransition类实际上Android系统的一个实用工具类。...addImageViewAtIndex(lastEditIndex + 1, imagePath); ``` 17.键盘弹出和收缩优化 软键盘弹出的时机 如果不做任何处理,系统默认的是,进入页面,第一个输入自动获取焦点软键盘自动弹出...我们可以在AndroidManifet.xml对Activity进行设置。stateUnspecified-未指定状态:软件默认采用的交互方式,系统会根据当前界面自动调整软键盘的显示模式。...,会自动将当前布局顶起,保证,软键盘不遮挡当前输入框(正常布局,非scrollView父布局)。

    8.5K20

    android学习笔记----SQLite数据库

    那么新表temp就没了主键,不会自动增长,查看建表语句integer变成了int, char变成text。...(如果数据库还没被创建),数据会添加成功 我们可以把数据库导出到SQLite Expert去查看表内容,也可以直接在控制台查看一个大概,查看数据库和表有没有被创建。...在Terminal或者在系统控制台输入adb shell 然后进行如下操作: ​​​​ 用cd命令进入/data/data/com.example.createdb2/databases 目录 注意...这个目录,mydb.db是我们创建的 另一个是mydb.db-journal,这是为了让数据库能够支持事务而产生的临时日志文件,通常情况下这个文件的大小是0字节 接下来输入sqlite3 mydb.db...打开mydb.db数据库 输入.table命令查看数据库中有哪些表,这个android_metadata是每个数据库中都会自动生成的,不用管。

    99020

    Android实现常见的验证码输入框实例代码

    前言 验证码输入框是很多APP必不可少的组件,之前在重构注册登录页面的时候,重新设计了UI,所以不能再简单的用EditText来做了,所以这篇文章将分享一下如何实现一个常见的验证码输入框。...又在网上查了一下,发现比较靠谱的办法是用6个TextView加一个EditText来实现,也按照这个方法去实现了,但是后来在测试的时候就发现了问题:网上给出的实现方式需要监听软键盘的删除按钮 editText.setOnKeyListener...只能输入,不能删除,这可不行啊,用户肯定会骂娘的,我可不想被拿去去祭天什么的… 于是乎只能想办法在原有的基础上做一些修改,来规避这个问题,最后采用的方案是:采用一个TextView的数组来维护6个TextView...,然后藏一个透明的EditTextView在后面用于接收用户输入的内容,再把输入的内容展示6个TextView上就行了,UI什么的可以自己随意设计。...在实现的过程,遇到的一个关键问题就是:当输入的内容超过6位以后我该如何处理?

    1.5K51

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

    前言 在Android开发中经常会遇到EditText控件,而在App开发过程、遇到了这样一个问题、那就是Android EditText控件如何禁止往里面输入内容?...最开始找到修改版解决方法、但是当想输入的时候就有问题了、可以参考一下、但不建议这样写 EditText editText = (EditText) findViewById(R.id.editText1...再者、如果真要禁止输入文本、在布局文件添加 android:focusable="false" 或者在代码中使用、不就Ok了?...editText.setFocusable(false) 项目需求是这样的、在EditText后面跟一个CheckBox、勾选CheckBox可以输入、否则不可以输入、另外也有这种需求、比如已经被setText...()内容、则需要禁止输入防止它被修改、 如果没有显示内容、则将EditText设置为可输入状态 经过测试验证:setFocusable方法的效果只有第一次使用时有效、也就是说若在布局文件里面设置:

    1.4K31

    Android EditText 获得输入焦点 以及requestfocus()失效的问题

    最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正确就登陆,错误就提示密码错误,...并且输入框获取焦点,但是实际确不起作用 package com.example.hfs.requestfocusdemo; import android.content.Intent; import...123456".equals(mPassWord.getText().toString())){ Toast.makeText(this,"密码错误,请重新输入",Toast.LENGTH_SHORT...finish(); } } } 原因 查资料分析了一下,可能是以下问题:  Android加载刷新UI的时候,是从左到右,从上到下的顺序,正在加载的过程,...解决办法 找到原因后就有解决办法了,给他个延迟时间: mPassWord.postDelayed(new Runnable() {   @Override   public void run()

    3K60

    安卓应用安全指南 5.1 创建密码输入界面

    有两种方法可以将EditText显示为密码:在布局 XML 静态指定此值,或通过从程序中切换显示来动态指定此值。...它有助于防止最后输入的密码被嗅探的风险,即使设备被传递给第三方,比如它被盗时。 仅供参考,在虚拟显示的情况下以及用户尝试输入密码时,应取消虚拟显示,需要变成正常输入状态。...自动登录功能 存在一个功能,可以完成成功登录过程一次后,通过省略下次登录的 ID /密码输入来执行自动登录。自动登录功能可以省去复杂的输入。...所以在这种情况下,与自动登录功能配套的安全措施是必需的。存在一些可能的应对措施,例如【在付款过程等财务流程前需要重新输入密码】,【设置自动登录时,请求用户注意并提示用户锁定设备】等。...此设置影响整个系统,并且它适用于使用EditText的密码显示功能的所有应用。 5.1.3.4 禁用屏幕截图 在密码输入屏幕,密码可以在屏幕上清晰显示。

    1.1K20

    Android EditText监听回车键并处理两次回调问题

    前言 我们都知道,在登面,搜索等等有EditText控件的界面上,当用户输入完内容后,点击回车键执行逻辑会有非常好的用户体验,所以今天我们来学习如何监听EditText监听回车键并处理监听时发生了两次回调问题...代码 首先我们在xml布局添加一个要监听的EditText <?xml version="1.0" encoding="utf-8"?...中点击回车键,会看到如下日志 E/MainActivity: onKey: 按下回车键 E/MainActivity: onKey: 按下回车键 为什么我们会看到两次日志输入呢?...要解决这个办法非常简单,我们只需要多加一个条件判断,是抬起还是按下即可 @Override protected void onCreate(Bundle savedInstanceState) {...的回车样式,即是把EditText的ImeOptions属性设置成不同的值,Enter键上就会显示不同的文字或图案 actionNone : 回车键,按下后光标下一行 actionGo : Go,

    1.7K31

    Android开发软键盘的显示和隐藏

    一、开篇 如果有需要用到输入的地方,通常会有需要自动弹出或者收起软键盘的需求。开篇明义,本文会讲讲弹出和收起软键盘的一些细节,最终还会从源码进行分析。...它首先需要一个 View ,使用软键盘就是为了输入,而输入就需要有接收输入内容的 View ,这里接收输入的 View ,最好是一个 EditText(但这不是必须的)。...现在,简单总结一下调用 showSoftInput() 会生效的关键点: 1、第一个参数,最好是 EditText 或者它的子类。 考虑软键盘就是为了输入EditText 就是一个接收输入的控件。...EditText 默认是允许获取焦点的,但是假如布局,存在多个可获取焦点的控件,就需要提前让我们传递进去的 View 获取到焦点。获取焦点可以使用 requestFocus() 方法。...但是我们并没有办法,直接和 InputMethodService 进行交互,我们也就没办法直接拿到当前键盘是否显示。

    2.6K10
    领券