EditCheckManager的使用
来源:互联网 发布:java 微商城开源框架 编辑:程序博客网 时间:2024/06/08 04:26
对多个EditText的状态进行监听,特别好用
package com.juexing.tniu.utils;import android.text.TextUtils;import android.widget.Button;import android.widget.EditText;import com.juexing.tniu.utils.listener.SimpleTextWatcher;/** * author:crs * time:2017/3/1 * description:用来监听一个多个EditText是否有数据以改变指定Button状态 */public class EditCheckManager extends SimpleTextWatcher { public interface ICheck { boolean check(); } private ICheck mICheck; private EditText[] mEditTexts; private Button mBtn; private EditCheckManager() { } private EditCheckManager(Button btn, EditText... editTexts) { mEditTexts = editTexts; mBtn = btn; } private EditCheckManager(ICheck ICheck, Button btn, EditText... editTexts) { mICheck = ICheck; mEditTexts = editTexts; mBtn = btn; } public static EditCheckManager create(Button btn, EditText... editTexts) { return new EditCheckManager(btn, editTexts); } public static EditCheckManager create(Button btn, ICheck iCheck, EditText... editTexts) { return new EditCheckManager(iCheck, btn, editTexts); } public void listener() { if (mBtn == null || mEditTexts == null) { return; } for (EditText editText : mEditTexts) { editText.addTextChangedListener(this); } mBtn.setEnabled(checkCondition()); } public void removeListener() { for (EditText editText : mEditTexts) { editText.removeTextChangedListener(this); } } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mBtn.setEnabled(checkCondition()); } private boolean checkCondition() { if (mICheck == null) { return checkAllEdit(); } else { return mICheck.check(); } } private boolean checkAllEdit() { for (EditText editText : mEditTexts) { if (TextUtils.isEmpty(editText.getText() + "")) { return false; } } return true; }}
屏幕适配 特别好用:com.zhy:autolayout:1.4.5
//添加日志拦截器:看看效果
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
okHttpClientBuilder.addInterceptor(interceptor);
添加依赖的方式,而非导入jar包,否则可能导致方法数超过65535,导致apk过大。
对项目依赖的管理:
compile 'com.alibaba:fastjson:1.2.37'
compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
compile 'com.squareup.okio:okio:1.13.0'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
类头注释:
/**
* Created on ${DATE}.
* Author:crs
* Description:
*/
项目里面已经使用了Bufferknife所以就不需要在使用
setOnClistenerListener(this)LoginAct里面有很多冗余的代码(版本维护的时候进行删除)
在父类里面封装了加载对话框以及隐藏对话框的操作。
使用MVP模式改造代码(特别好用)
Process finished with exit code 0
说明程序正常执行完毕,没有出错。
process finished with exit code 1
说明程序出错,也就是代码有问题。
1)把目标sdk修改成22,自己还没有测试过,是否可以安装(针对6.0及以上的权限)。
2)申请另一个百度统计账号,用于测试(防止脏数据的出现)。
3)申请另一个友盟统计账号,用于测试。
4)清除无用的依赖和图片资源,缩小apk的大小(特别有用的)。
5)通过gradle的方式打渠道包,还没有配置过。
6)友盟推送功能的实现。
7)对于svn的处理。
- EditCheckManager的使用
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- %:的使用
- Makefile中使用$$的使用
- Makefile中使用$$的使用
- Red5的使用--使用日志
- prefernce的使用具体使用
- 【工具使用】git 的使用
- 关于使用AsyncTaskLoader的使用
- 使用CABasicAnimation的基本使用
- 使用RocketMQ的客户端使用
- gulp的使用基本使用
- (4.2.42)手势解锁之九宫格控件PatternLockView
- .net 导出excel带图片
- 安装服务的命令
- Ubuntu for armel的绝唱 ubuntu-core-12.04-core-armel.tar.gz
- Java 多态
- EditCheckManager的使用
- Struts2入门之HelloWorld
- 学习:C#一次性执行多条语句(查询的是不同的表 DataTable和DataSet)
- TableView之表头、表尾,区头、区尾!
- 欢迎使用CSDN-markdown编辑器
- 通过数据查询出来的sql不能被修改解决方案
- php分页原理
- Android 反射 getFields()与getDeclaredFields()区别
- 无限级分类,树形结构