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

详解EditText输入监听TextWatcher「建议收藏」

大家好,又见面了,我是你们的朋友全栈君。 日常开发中,我们可能会遇到需要监听EditText输入,比如判断输入是否为电话号码,获取输入的数据长度来限定字数等。...: 输入一个字符:s字符串也就是当前EditText中的内容为空,所以输出空; 开始处:0,司空见惯,从0计数; 替换长度:0,这个怎么理解呢?...修改EditText的输入长度为15再试试: android:maxLength="15" 运行截图: 达到最大长度才显示了一下,我们可以推测到,他竟然递归调用了。。。...beforeTextChanged();在View改变之前执行,好比你输入了字符,系统先统计你输入的信息,在这里可以提前获取你的动机。...所以就处于死循环了。切记在此做操作。 好了,关于监控EditText就说到这里,看了后会不会更清晰怎么用了呢?

3.1K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android文件读写和使用SharedPreferences储存数据

    首先来看一下Android文件的读写: 假设我们现在有这么一个需求:一个Activity中有一个EditText,在每次这个程序启动的时候我们要恢复用户上一次在EditText中输入的数据。...TextUtils.isEmpty(str)) // 如果字符串不空,返回这个字符串 { return str; } else...在 onDestroy 方法中调用 saveText 来储存 EditText 中的数据。,在 onCreate 方法中我们进行恢复 EditText 中的数据。...这里用来检测字符串是否为空。运行程序: ? 刚开始什么都没有(如果你是第一次运行这个程序) 输入字符: ? 退出程序之后再次进入程序: ? 成功恢复!...得到了SharedPreferences对象之后我们就可以利用它进行数据的储存了: (1) 调用Sharedpreferences 对象的 edit() 方法获取一个SharedPreferences.Editor

    2K10

    Android富文本开发

    如果光标已经顶在了editText的最末端,则需要添加新的imageView 如果光标已经顶在了editText的最中间,则需要分割字符串,分割成两个EditText,并在两个EditText中间插入图片...如果当前获取焦点的EditText为空,直接在EditText下方插入图片,并且插入空的EditText 代码思路如下所示/** * 插入一张图片 * @param imagePath...if (lastEditStr.length() == 0) { //如果当前获取焦点的EditText为空,直接在EditText下方插入图片,并且插入空的EditText...} else { //如果光标已经顶在了editText的最中间,则需要分割字符串,分割成两个EditText,并在两个EditText中间插入图片...EditText的位置插入一个空的EditText,以便连续插入多张图片时,有空间写文字,第二个EditText下移 在空的EditText的位置插入图片布局,空的EditText下移。

    8.5K20

    保存文件到手机内存

    pansz: Android 对每个应用程序定义了私有的存储区域,这个区域通过 Linux 的文件系统权限控制,仅仅应用自己可以随意读写,问其他应用无法访问不属于自己的私有数据。...如果大家要存储数据,可以用 1 或者 2 的方法,获取正确的目录,然后进行任意读写,这样不会把 SD 卡的目录写乱。...复选框判断是否选中使用CheckBox对象的isChecked()方法,判断字符串是否相等用String对象的equals()方法,logcat如果无法打印日志,关闭logcat重开或者关闭eclipse...谷歌提供了一个api来获取应用的数据目录,调用Context上下文对象的getFilesDir()方法,返回的是/data/data/包名/files/。...上下文就是一个类提供了方便的api可以得到应有程序的环境,可以获取包名,文件路径,资源路径,资产路径等 9.

    98240

    项目需求讨论-摆脱EditText内容规则的枯燥判断

    我就去寻找相关的优秀的工具,这不,本文的主角出场了: android-saripaar 这里我们分别对于本文主角的使用功能来进行介绍: 基本使用方法: 比如我们上面讲到的用户名不能为空,我们看下用saripaar...但这里注意了,上面提过我们获取message是用 error.getCollatedErrorMessage(context);复制代码 因为上面我们一个EditText只添加了一个规则判断,所以无所谓...没错,虽然判断规则的顺序的确是按照我们写的那样,但是,你发现了,error.getCollatedErrorMessage(context);方法获取到的message的内容是全部不符合规则的message...还记不记得我们已经介绍了上面ValidationError的二个方法,还有一个方法getFailedRules()没介绍过,没错,我们可以用这个,从字面意思我们就可以理解,获取到失败的规则的集合,而且这个集合的顺序就是我们设置的...---- validateTill 和 validateBefore 我们上面在最后起到验证功能是调用了 mValidator.validate();复制代码 同时它还提供了: mValidator.validateTill

    41410

    Android EditText使用详解-包含很多教程上看不到的功能演示

    二:EditText简介 EditText是一个非常重要的组件,可以说它是用户和Android应用进行数据传输窗户,有了它就等于有了一扇和Android应用传输的门,通过它用户可以把数据传给Android...EditText为我们提供了android:hint来设置当EditText内容为空时显示的文本,这个文本只在EditText为空时显示,你输入字符的时候就消失了,不影响你的EditText的文本。。...四:输入特殊格式的字符 在我们开发程序的时候不免会输入一些特属个数的字符,比如密码(输入框的字符要加密显示),电话号码(比如数字和-),数字等,这些都算是一些特属格式的字符,强大的EditText同样为我们提供了输入这些特属格式字符的设置...有时候我们只想输入数字,不想输入字母,EditText为我们提供了android:numeric来控制输入的数字类型,一共有三种分别为integer(正整数)、signed(带符号整数)和decimal...八:小结 这结详细介绍了EditText的大部分特性和常用功能,如常用的密码框,获取值等等。这几天忙的没更新,这次更新个长的。可以够消化一阵子的。

    3.9K20

    初涉静态调试 - 修改Smali

    ; .field private mUserNameID:Landroid/widget/EditText; Enmmm,显而易见,这里定义了三个全局变量,并且我们解析下这几行行所代表的含义: instance...initView()V .line 24 invoke-direct {p0}, Lcom/hlq/apktooldemo/MainActivity;->initEvent()V 而这俩行,则是定义了俩个方法...ID 存入字符串常量引用到 vx,通过字符串 ID 或字符串 const-string v1, "\r|\n" // 同上 const-string v2, "" //...:Lcom/hlq/apktooldemo/MainActivity; // invoke-static{参数}, 方法名 调用带参数的静态方法 // 获取 EditText 实例...修改 Smali 文件,使其达到我们预期效果 从文中提供 Demo 演示图,我们可以看出,当前的小程序主要功能便是,属于用户名以及校验码,验证通过进入欢迎页,否则提示错误异常。

    1.5K20

    textview可复制_长按复制是怎么做的

    大家好,又见面了,我是你们的朋友全栈君。...点击”复制” 就去获取TextView的内容。(PS : 这里是获取内容,而我们还需要将内容放入粘贴管理器还需要一个ClipboardManager 对象.它负责管理复制后粘贴的这件事。...2、使用EditText,和TextView一样在xml里面直接加一句话android:editable=”false” 可以实现,不过需要注意,使用EditText的话需要设置一个背景色,或者设置空也行...如果查看了EditText源码,,也可以发现源码中有一个方法 protected void onCreateContextMenu(ContextMenu menu) 控制了EditText长按弹出的上下文菜单...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.9K20

    【Jetpack】DataBinding 架构组件 ⑤ ( 数据模型与视图双向绑定 | BaseObservable 实现双向绑定 | ObservableField 实现双向绑定 )

    , 可以改变 TextView 显示的内容 ; TextView 组件不能发起对数据模型的修改 ; 2、由单向绑定引出双向绑定 如果 绑定的 数据模型 对应的组件是 EditText 文本框 , EditText...组件的内容可以自行进行修改 , 数据模型 可以发起对 EditText 组件的修改 , 同时 EditText 也可以发起对数据模型的修改 , 那么就会出现一个 双向绑定 的问题 ; 二、BaseObservable...组件设置值时 , 也使用该函数设置值 ; 设置了 @Bindable 注解 , 只要 student 对象中的 name 发生了变化 , 绑定的组件中的内容就会发生变化 ; /**...*/ fun setStudentName(name: String): Unit { // 修改后的字符串不为空 且与之前的值不同 才更新数据模型数据...就会自动调用该函数 修改 student 对象中的 name 字段 */ fun setStudentName(name: String): Unit { // 修改后的字符串不为空

    1.4K30

    Android数据存储方式之SharedPreferences

    不同于文件的存储方式,SharedPreferences提供了一种K-V键值对的数据存储方式。...也就是说,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。...而且SharedPreferences还支持多种不同的数据类型存储,如果存储的数据类型是整型,那么读取出来的数据也是整型的;如果存储的数据是一个字符串,那么读取出来的数据仍然是字符串。...SharedPreferences 实例,用于读写; 在写操作中,通过调用 SharedPreferences 的 edit() 方法获取一个Editor实例,用于编辑SharedPreferences...,如putString,最后apply()来完成更改; 在读操作中,直接调用SharedPreferences的getXXX获取值数据即可。

    7.9K2840

    TextInputLayout-Android M新控件

    其中一个重要的特性就是AppCompat theme没有提供一个显示在EditText上方的浮动标签。 比如下图所示: ?...就如你知道的,这个属性允许你在EditText的内容为空的时候显示一个自定义的提示。一旦用户开始输入,hint会消失。这并不理想,因为用户丢失了他们输入信息的上下文提示。...public boolean validatePassword(String password) { return password.length() > 5; } Retrieving Data 获取数据...现在我们定义了什么是错误的什么是正确的,也知道了如何获取EditText中的数据以及显示可能的错误,onClick方法的实现就很简单了。...现在,如果你的应用有类似数据输入的地方,你终于可以完全遵循material design 了。

    77920

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券