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

Android开发之输入框EditText介绍

“手机号”、“密码”后面的竖线 3.如何嵌套输入框的布局 4.如何监听输入框的输入事件及删除按钮的动态显示隐藏 1.如何使用圆角输入框和按钮背景 安卓为开发者准备了shape这个xml标签,用于自定义一些形状...2dp" android:layout_toRightOf="@+id/textView1" android:background="#EEEFFF" /> 3.如何嵌套输入框的布局 安卓给我们提供了多种布局...在这里我写出了一个工具类方便大家调用。高内聚低耦合是我们共同的追求。...m1) { e1.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence...void afterTextChanged(Editable s) { // TODO Auto-generated method stub // 监听如果输入串长度大于0那么就显示clear

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

    Android RxJava 实战系列:联想搜索优化

    前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。 ?...本系列文章主要基于 Rxjava 2.0 接下来的时间,我将持续推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、应用场景、背压等等 ,有兴趣可以继续关注Carson_Ho的安卓开发笔记...此处采用了RxBinding:RxTextView.textChanges(name) = 对对控件数据变更进行监听(功能类似TextWatcher),需要引入依赖:compile 'com.jakewharton.rxbinding2...传入EditText控件,输入字符时都会发送数据事件(此处不会马上发送,因为使用了debounce()) * 3....实际场景应用 & Rxjava的相关使用框架(如Retrofit、Eventbus) ,继续对 Android中 Rxjava 的实际开发需求场景进行深入讲解 ,有兴趣可以继续关注Carson_Ho的安卓开发笔记

    1.2K20

    Android RxJava 实战系列:联合判断

    前言 Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。...本系列文章主要基于 Rxjava 2.0 接下来的时间,我将持续推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、应用场景、背压等等 ,有兴趣可以继续关注Carson_Ho的安卓开发笔记...需求场景 需要同时对多个事件进行联合判断 如,填写表单时,需要表单里所有信息(姓名、年龄、职业等)都被填写后,才允许点击 “提交” 按钮 2....传入EditText控件,点击任1个EditText撰写时,都会发送数据事件 = Function3()的返回值(下面会详细说明) * 3....实际场景应用 & Rxjava的相关使用框架(如Retrofit、Eventbus) ,继续对 Android中 Rxjava 的实际开发需求场景进行深入讲解 ,有兴趣可以继续关注Carson_Ho的安卓开发笔记

    73420

    android短信验证码方案,Android之短信验证码

    节点中加入以下代码: android:name=”JUHE_KEY” android:value=”你的appkey” /> 4.在src中加入MyApplication类,并且在AndroidManifest.xml...的onCreate()方法中调用接口初始化: import com.thinkland.sdk.util.CommonFun; import android.app.Application; public...成功; 1 错误; 本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常 reason 返回信息 成功或错误原因. result 返回结果,JSON格式.错误或者无返回值时为空...} } }); countDown(); break; case R.id.iv_clear: etPhoneNum.getText().clear(); break; case R.id.btn_submit...成功; 1 错误; 本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常 reason 返回信息 成功或错误原因. result 返回结果,JSON格式.错误或者无返回值时为空

    10.5K50

    Android训练课程(Android Training) - 构建你的第一个应用

    2.在你的设备上启用USB debugging(USB调试)模式 在很多运行在安卓3.2或者更旧的版本上的设备,你可以在选项设置里找到: 设置>应用程序>开发者 在安卓4.0或者更新一些的版本,他存在于...当用户点击按钮时,系统将会调用它。...在sendMessage() 方法内部,使用 findViewById() 去获得 EditText 元素,并且添加它的文本的值到intent里。...这确保它们在和其他应用交互时是唯一的。 启动第二个Activity 要启动一个Activity,调用 startActivity() 并且把你的intent传递给它。...当它打开时,在文本框输入一个消息,点击发送,这时消息出现在第二个activity。 图表2 。 在最终的应用程序里的两个activity,运行在安卓4.4 这就是了,你完成构建里你的第一个安卓应用!

    2.2K00

    Android开源库:手把手教你实现一个简单好用的搜索框(含历史搜索记录)

    context) { super(context); init(); // 初始化该组件时,对EditText_Clear进行初始化 ->>步骤2...X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度 } /** * 步骤3:通过监听复写EditText本身的方法来确定是否显示删除图标...(INVISIBLE); // 初始状态 = 不可见 } /** * 步骤3 * 监听输入键盘更换后的搜索按键 * 调用时刻:点击键盘上的搜索键时 */...源码分析 /** * 监听输入键盘更换后的搜索按键 * 调用时刻:点击键盘上的搜索键时 */ et_search.setOnKeyListener(new View.OnKeyListener...下一篇文章我将继续进行一些有趣的自定义View实例讲解,有兴趣可以继续关注Carson_Ho的安卓开发笔记 更多简单好用的开源库:简单 & 好用的开源组件: 自定义EditText:手把手教你做一款含一键删除

    3K10

    Android开发笔记(三十六)展示类控件

    在代码中实现时,可调用如下方法: setGravity : 设置文本的对齐方式。 setLines : 设置文本的行数。 setMaxLines : 设置文本的最大行数。...2、在文字周围放置图片。通过在线性布局内部放置ImageView控件也能实现,但显然不如在TextView控件内部加入图片来得方便。...在代码中实现时,可调用如下方法: setCompoundDrawables : 设置文本周围的图形。该方法有四个参数,分别表示左边、上方、右边、下方的图形。...在录入用户信息时(比如输入姓名、密码等等),EditText输入回车键,常常不要换行而是让光标直接跳到下一个编辑框。这个场景说起来简单,开发过程中就分解为三个功能: 1、监控用户当前输入了回车键。...给编辑框注册一个TextWatcher监听器(addTextChangedListener方法),当检测到文本发生变化并找到回车换行符时,触发光标跳转操作; 2、保持当前控件不换行,依旧单行显示。

    1.5K30

    RxBinding详解: 规范而强大的安卓UI响应式编程

    使用RxBinding时,你对这些监听事件的可以有一致的实现:RxJava的subscription。只需要对RxJava稍有了解即可。...在传统Android中,我们必须实现整个TextWatcher才行,这会多出许多行没必要的代码,因为你还得实现beforeTextChanged方法与 afterTextChanged方法。...必须注意到前面的例子中使用RxBinding只是简单实现了TextWatcher的onTextChanged方法。下面我们来看看如何用RxBinding完全实现TextWatcher。...在 context 中使用 share 允许对同一个button点击事件的多次监听,简直太强大了。 RxBinding 癖好与安装 在使用RxBinding时需要注意一些地方。...第二,许多Android UI 事件内部接口返回多个参数。但RxJava observables 只能返回一个参数(也不能是…)。因此,你需要把这些参数封装为一个才行。

    2.9K40

    Android:彻底消灭OOM的实战经验分享(千分之1.5 -> 万分之0.2)

    的TextWatcher,这是非常容易泄露且在我们项目中大量出现的一个case,然后,于是乎我们加上了更加丧心病狂的兜底策略, 话不多说,直接上代码 private void traverse(ViewGroup...,OOM率还是高居不下,于是乎,我们开始怀疑内存峰值太高的问题,在我们的项目中不仅仅只有native的部分模块,还有混合的H5、RN模块,当起一个ReactActivity的实例时,内存峰值总是涨的特别特别厉害...().clear(); Fresco.getImagePipelineFactory().getEncodedCountingMemoryCache().clear(); } 又一个兜底方案 为了防止峰值过高...检查内存泄漏,包括常见的Context泄漏、单例泄漏、EditText的TextWatcher泄漏等等,找到并fix他们,最简单的例子,能传application的地方就不要硬传个activity过去...兜底方案: 在Activity onDestory的时候,遍历View树,清空backGround、Drawable、EditText的TextWatcher等 3. 内存峰值的优化。

    1.3K60

    加载那么多小姐姐的脉脉,怎么没OOM?

    因此完全可以对他的可能导致整个Activity泄露的引用进行清空,将其中的一些资源释放干净,比如有EditText的TextWatcher,这是非常容易泄露且在我们项目中大量出现的一个case。...) { ((EditText) child).cleanWatchers(); } } } } 我们在基类BaseActivity...在我们的项目中不仅仅只有native的部分模块,还有混合的H5、RN模块,当起一个ReactActivity的实例时,内存峰值总是涨的特别特别厉害,同时项目中有消息流的展现,其中会包含着大量的图片展示,...泄漏、单例泄漏、EditText的TextWatcher泄漏等等,找到并fix他们,最简单的例子,能传application的地方就不要硬传个activity过去 兜底方案: 在Activity onDestory...的时候,遍历View树,清空backGround、Drawable、EditText的TextWatcher等 内存峰值的优化。

    57920

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

    EditText使用TextWatcher实现类似按钮监听事件: 使用方法 效果图: MainActivity.java public class MainActivity extends...意思是:这个方法告诉你,在字符串s内的某处,一些地方已经改变了,在这个方法里可以对s做一些改变,但是注意别让你陷入反复调用它的问题上,因为可能你做的任何改变会让他递归调用本身。...修改EditText的输入长度为15再试试: android:maxLength="15" 运行截图: 达到最大长度才显示了一下,我们可以推测到,他竟然递归调用了。。。...所以这个方法是在你输入完后才调用的,你输入一个字符,然后以后是不是一直处于输入完成状态,所以他一直在调用这个方法。...onTextChanged();在View改变之后短时间内执行,也就是区别afterTextChanged();的一直执行状态,他只调用一次。

    3.1K31

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

    有两种方法可以将EditText显示为密码:在布局 XML 中静态指定此值,或通过从程序中切换显示来动态指定此值。...仅供参考,在虚拟显示的情况下以及用户尝试输入密码时,应取消虚拟显示,需要变成正常输入状态。 显示最后输入的密码时,显示虚拟密码。...以下是一些在登录过程中需要注意的事项。 登录失败时的错误信息 在登录过程中,需要输入两个信息,ID(账号)和密码。 登录失败时有两种情况。 一个是 ID 不存在。...因此,便利性会增加,但另一方面,当智能手机被盗时,第三方恶意使用的风险将随之而来。 只有在恶意第三方造成的损害可以接受时,或者只有在可以采取足够安全措施的情况下,才能使用自动登录功能。...关闭时,输入后会立即屏蔽。 此设置影响整个系统,并且它适用于使用EditText的密码显示功能的所有应用。 5.1.3.4 禁用屏幕截图 在密码输入屏幕中,密码可以在屏幕上清晰显示。

    1.2K20

    真·富文本编辑器的演进之路-Span的整体性控制

    控制选中 在讲解如何在普通文本中对Span做整体性控制前,我们先来考虑下选择的问题——如何让「整体性Span」的内部无法被选中。 首先,我们要知道,Edittext的光标也是一种Span。...也就是说,我们可以通过监听光标的移动事件,通过Selection实现当光标移动到Span内部时,让它重新移动到Span最近的边缘位置,从而让Span内部永远无法插入光标,这就是我们的主要思路。...其实,Android的Span不仅功能非常强大,而且也提供了非常完善的管理API,在TextView和Edittext中,我们要监听Text的变化过程,可以使用TextWatcher,它可以在文本发生改变时进行回调...在TextVIew的内部,它通过DynamicLayout来渲染Spannable数据,在其内部会设置SpanWatcher来监听Span的新增、修改和删除,当监听到变化后,会调用其内部的方法进行刷新。...当我们检测到这两个事件后,根据当前Selection的位置,拿到当前是否存在「整体性Span」,如果是「整体性Span」,那么在删除时则整体移除即可。

    2K30

    让你的EditText删除表情比微信更高效--记一次android性能分析优化实战

    前言 自己在做SpEditTool:一个支持表情,@mention,#话题#等功能的EditText控件,这个项目的时候出现了一个很奇怪的问题 EditText输入表情过多的时候,从中间开始删除表情,会出现非常卡的情况...()中会调用多次StaticLayout.generate() 有一点疑问,我看DynamicLayout源码,每次reflow()应该只会调用一次StaticLayout.generate()而且都是在主线程...之前文章中提到过SpanWatcher继承于NoCopySpan接口,在产生一个新的Spannable对象时NoCopySpan不会被复制,而ChangeWatcher则实现了SpanWatcher,...出现上面log的原因是因为InputConnection在setText()时需要被重新创建,而第二次删除时InputConnection可能还没创建好或者IInputConnectionWrapper...()被调用,谷歌直接简单粗暴的用反射获取了ChangeWatcher的Class对象,在setSpan()的时候发现如果是ChangeWatcher就把它包装在新的WatcherWrapper中,所有的操作都通过

    1.4K30

    RxBinding使用和源码解析

    继承MainThreadDisposable ,这个是在dispose的时候会回调onDispose()方法,这里可以解除监听;Listener还实现了TextWatcher接口,主要看下这个方法:...2.第二行代码observer.onSubscribe(listener);这个其实就是提供一个Disposable,供解除用,在Listener中实现了这个方法,在解除监听的时候调用 @Override...EditText,给这个EditText注册系统的监听事件,前面已经说了Listener还实现了TextWatcher接口,所以没毛病吧。...这样我们表单验证的源码就分析差不多了,其实就是RxTextView封装了一个Observable,这样就可以使用RxJava的各种操作符了,然后注册系统原生的响应事件,在事件发生时通过observer.onNext...Listener中实现不同的原生系统接口,比如按钮就实现OnClickListener, EditText就实现TextWatcher, ListView就实现OnItemClickListener,在事件发生时

    1.3K100
    领券