在开发中,我们经常会遇到这种情况
我们经常需要的是以下效果
但是在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的子类,所以如果好用的话记得表扬一下。
所有人都在看
1.《edittext Android多个EditText输入效果解决方案》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《edittext Android多个EditText输入效果解决方案》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/610879.html