首页
学习
活动
专区
工具
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.7K30
  • 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获取焦点。

    95320

    app加固_360加固保手机版

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

    6K30

    Android使用TextInputLayout创建登陆页面

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

    1.6K10

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

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

    1.6K30

    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。

    76320

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

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

    5.6K51

    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是每个数据库中都会自动生成的,不用管。

    98420

    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

    Android自定义支付密码输入框,光标问题总结!

    前言 在项目中我们常常继承AppCompatEditText或EditText自定义验证码输入框来代替系统输入框,以满足UI设计需求,如: 直线形输入框 方形输入框 | image.png...image.png 本文主要分析自定义验证码输入框过程中常被忽视的光标问题及个人的一点经验总结 onDraw方法一直被调用 我们在onDraw方法添加Log日志,发现onDraw方法每间隔500ms...左右被调用一次 image.png 此处先给出解决办法: *当我们继承EditText自定义验证码输入框后,EditText自带的光标对我们来说不可见,已经没有意义,因此需要将其隐藏掉,防止onDraw...我们知道invalidate方法会触发页面重绘进而调用onDraw方法,EditText又继承TextView,在TextView源码搜索invalidate关键字然后加断点调试运行,最后将代码锁定在...Blink类的run方法每隔500ms会调用TextView的invalidateCursorPath方法 问题3:如何自定义验证码输入框光标?

    1.3K20
    领券