edittext Android多个EditText输入效果解决方案

当前位置:首页 > 房产

edittext Android多个EditText输入效果解决方案

发布时间:2020-12-20 15:37:02

在开发中,我们经常会遇到这种情况

我们经常需要的是以下效果

但是在Activity中编写这些实现的代码会比较麻烦,会影响代码的美观

所以有以下辅助类,禁用按钮的点击事件和按钮的渐变颜色,可以同时添加一个或多个EditText

/**

*文本输入辅助类,通过管理多个文本视图或编辑文本输入是空来启用或禁用按钮点击事件

*/

publicffinalclastextinputThreadimplementTextWatcher {

privateView mMainView//操作按钮视图

privateList<。TextView>。mViewSet//文本视图集合,子类也可以(编辑文本,文本视图,按钮)

privatebooleanisAlpha//设置透明度

publicTextInputHelper(视图视图){

这(观点,真实);

{}

/**

*构造函数

*

* @paramView跟随EditText或TextView输入为空判断是否启动或禁用此视图。

* @ paramalpha是否需要设置透明度

*/

publicTextInputHelper(视图视图,booleanalpha

if(view = = null)thrownew illegalargumentexception("视图为空");

mMainView = view

isAlpha = alpha

{}

/**

*添加编辑文本或文本查看收听

*

* @在一个或多个编辑文本或文本视图对象中传递的参数视图

*/

公共无效添加视图(文本视图...视图){

if(view = = null)返回;

if(mViewSet == null) {

mViewSet = newArrayList & lt>。(view . length-1);

{}

for(TextView视图:视图){

view . addtextchangedlistener(this);

mViewSet.add(视图);

{}

after text changed(null);

{}

/**

*删除编辑文本监控以避免内存泄漏

*/

publicavitremoveview(){

if(mViewSet == null)返回;

for(TextView视图:mViewSet) {

view . removetextchangedlistener(this);

{}

mviewset . clear();

mViewSet = null

{}

//文本监视器

@覆盖

public void beforestextchanged(char sequence s,intstart,intcount,in after){ }

@覆盖

publicavitontextchanged(char sequence s,intstart,intbefore,intcount){}

@覆盖

public synchronizeddriftextchanged(可编辑){

if(mViewSet == null)返回;

for(TextView视图:mViewSet) {

if(")。equals(view.getText()。toString())) {

set ENabled(false);

返回;

{}

{}

set ENabled(true);

{}

/**

*设置查看事件

*

* @paramenabled启用或禁用视图事件

*/

public void setenabled(boolean enabled){

if(enabled = = mmainview . isenabled())返回;

if(enabled) {

//启用视图事件

mmainview . set ENabled(true);

if(isAlpha) {

//设置不透明度

mmainview . SetAlpha(1f);

{}

} else{

//禁用视图事件

mmainview . setenabled(false);

if(isAlpha) {

//设置半透明

mmainview . SetAlpha(0.5f);

{}

{}

{}

{}

创建活动时添加监听

privateTextInputHelper mInputHelper;

@覆盖

受保护的无效创建(捆绑保存的实例){

super . OnCreate(SaveDinstancestate);

//创建一个辅助类,传入按钮操作视图

mInputHelper = new textinputhelper(Mbutton);

minputhelper . addview(medittext 1,mEditText2,medittext 3);

{}

销毁活动时删除监控(以避免内存泄漏)

@覆盖

protectedvoidonDestroy(){

super . ondestroy();

//移除引用以避免内存泄漏

minputhelper . remove view();

{}

需要注意的是,这里不仅可以添加EditText,还可以添加TextView,因为EditText是TextView的子类,所以如果好用的话记得表扬一下。

所有人都在看

欢迎分享转载 →edittext Android多个EditText输入效果解决方案

Copyright © 2002-2020 鲁旭娱乐网 版权所有 备案号:粤ICP备14025430号-1

收藏本站 - 网站地图 - 关于我们 - 网站公告 - 广告服务