监听多个edittext内容 改变按钮颜色
来源:互联网 发布:淘宝退款几天到银行卡 编辑:程序博客网 时间:2024/06/05 15:31
效果如下图:
当两个edittext都输入了内容才改变 "确定" 的颜色
实现:其实就是在用到的时候 调用下面工具类的addAlledittext( )方法 把要监听的edittext都传进来 然后下面的工具类对传进来的edittext数组遍历设置一个监听器TextWatcher 在监听器的onTextChanged()方法中调用checkAllEdit()方法进行判断是否所有edittext都有内容 如果都有内容了 就用接口回调传过去一个true 否则就传false 在那边我们收到这个boolean值 进行判断 如果为true 就把 确定 设置为红色 为false就设置为灰色! 其实挺简单的 只是写出来 如果有银需要用到直接拷贝工具类的代码即可 无需自己再写了!
package cn.hululi.hll.util.wordsort;import android.text.Editable;import android.text.TextUtils;import android.text.TextWatcher;import android.util.Log;import android.widget.EditText;import android.widget.TextView;import cn.hululi.hll.util.IEditTextChangeListener;/** * @author 咸鱼 * @time 2016/9/11 12:31 * @desc 监听et的工具类 */public class WorksSizeCheckUtil { //发布作品时候填写尺寸的监听器 static IEditTextChangeListener mChangeListener; public static void setChangeListener(IEditTextChangeListener changeListener) { mChangeListener = changeListener; } /** * 检测输入框是否都输入了内容 * 从而改变按钮的是否可点击 * 以及输入框后面的X的可见性,X点击删除输入框的内容 */ public static class textChangeListener{ private TextView button; private EditText[] editTexts; public textChangeListener(TextView button){ this.button=button; }
public textChangeListener addAllEditText(EditText... editTexts){ this.editTexts=editTexts; initEditListener(); return this; } private void initEditListener() { Log.i("TAG", "调用了遍历editext的方法"); for (EditText editText:editTexts){ editText.addTextChangedListener(new textChange()); } } /** * edit输入的变化来改变按钮的是否点击 */ private class textChange implements TextWatcher { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {} @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { if (checkAllEdit()){ Log.i("TAG", "所有edittext有值了"); mChangeListener.textChange(true); button.setEnabled(true); }else { button.setEnabled(false); Log.i("TAG", "有edittext没值了"); mChangeListener.textChange(false); } } @Override public void afterTextChanged(Editable editable) { } } /** * 检查所有的edit是否输入了数据 * @return */ private boolean checkAllEdit() { for (EditText editText:editTexts){ if (!TextUtils.isEmpty(editText.getText() + "")){ continue; }else { return false; } } return true; } }}
下面就是activity中的代码
public class MainActivity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EditText editText1 = (EditText) findViewById(R.id.et_1); EditText editText2 = (EditText) findViewById(R.id.et_2); EditText editText3 = (EditText) findViewById(R.id.et_3); tv = (TextView) findViewById(R.id.tv); //1.创建工具类对象 把要改变颜色的tv先传过去 WorksSizeCheckUtil.textChangeListener textChangeListener = new WorksSizeCheckUtil.textChangeListener(tv); //2.把所有要监听的edittext都添加进去 textChangeListener.addAllEditText(editText1,editText2,editText3); //3.接口回调 在这里拿到boolean变量 根据isHasContent的值决定 tv 应该设置什么颜色 WorksSizeCheckUtil.setChangeListener(new IEditTextChangeListener() { @Override public void textChange(boolean isHasContent) { if(isHasContent){ tv.setTextColor(Color.RED); }else{ tv.setTextColor(Color.BLACK); } } }); }}
下面是接口
这样 在我们所有的editetxtview都有值时 textview会立刻变红色 否则就是灰色
2 0
- 监听多个edittext内容 改变按钮颜色
- EditText的内容改变监听
- jquery改变多个按钮颜色
- 给EditText添加ChangedListener(内容改变监听)
- EditText 监听内容改变,自动添加":"
- 多个按钮监听
- TextWatcher:监听编辑框EditText中内容的改变
- android EditText实例 删除按钮 与内容监听
- 多个editText监听事件
- EditText 使用细节(输入内容改变时的监听事件、透明背景、修改提示文字颜色、输入内容密文显示)
- EditText Text改变监听
- Edittext监听动态改变
- 改变edittext边框颜色
- 改变edittext边框颜色
- 改变EditText边框颜色
- 监听EditText内容变化
- EditText监听内容
- EditText 监听内容变化
- 软件充值网(www.RJCZ.net)一个按使用时间售卖软件的网站,欢迎入驻
- 我所了解的Chrome
- LeetCode #56 题解报告
- JavaScript中的柯里化(currying)
- bzoj1050: [HAOI2006]旅行comf
- 监听多个edittext内容 改变按钮颜色
- 解析简单工厂模式和适配器模式
- JAVA的网络支持
- listView长安出现选项菜单
- hdu4506 小明系列故事——师兄帮帮忙 快速幂取模
- Codeforces Round #370 (Div. 2) C 贪心
- 算法学习
- vijos p1347&&vijos p1455(递推)
- 外销升级接口V2.1.3TPS波动较大-基于索引的sql优化