• 去掉EditText的下划线
    android:background="@null"
  • 设置EditText的光标(可以自定义)
android:cursorVisible="true"android:textCursorDrawable="@drawable/test_cursor"

text_cursor.xml:

<?xml version="1.0" encoding="utf-8"?>            
  • 设置EditText最小显示的行数,光标显示在顶部第一行
android:gravity="top"android:minLines="4"
  • 设置TextView的行间距或行间距倍数
  android:lineSpacingExtra="4dp" android:lineSpacingMultiplier="1.3"
  • 設置TextView最多显示多少个字符,多余用省略号表示
end121
  • 自定义属性时设置TextView的textSize通过getPaint()方法设置(这样sp转换为px时才正常)
    tvText.getPaint().setTextSize(customTextSize);
  • 在代码中设置EditText的最大字数
    etEditCommon.setFilters(new InputFilter[]{new InputFilter.LengthFilter(len)});
  • 设置EditText数字输入范围,如 [0,100] (超过这个范围时不会让你输进去)
    etPoints.setFilters(new InputFilter[]{new ValueRangeInputFilter(0, 100)});
    ValueRangeInputFilter的代码如下:
public class ValueRangeInputFilter implements InputFilter{    private static final String TAG = "ValueRangeInputFilter";    private final int mMin, mMax;    public ValueRangeInputFilter(int min, int max) {        this.mMin = min;        this.mMax = max;    }    @Override    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {        try{            String originalResult = originalResultOfInputFilter(source.toString(), start, end,                    dest.toString(), dstart, dend);            int input = Integer.parseInt(originalResult);            if (isInRange(input))                return null;        }catch (NumberFormatException e){            LLog.d(TAG, "numberFormatException, and e is: " + e);        }        return "";    }    public static String originalResultOfInputFilter(String source, int start, int end,                                                     String dest, int dStart, int dEnd){        if (dStart == dest.length()) return dest + source;        if (dStart == 0) return source + dest;        String firstString = dest.substring(0, dStart);        String endString = dest.substring(dEnd);        return firstString + source + endString;    }    private boolean isInRange(int value){        return mMin <= value && value <= mMax;    }}
  • 监听EditText输入结合ButterKnife可以写成这样(方法名自己决定):
@OnTextChanged(value = R.id.et_text, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)    public void onTextContentChanged() {    //写入你的处理    }
  • 最后一个简单的工具类
public class TextUtils {/** * 一般用于登录注册之类的验证码显示 * @param textView * @return */public static CountDownTimer verifyCodeBtnCountDown(TextView textView) {    return new CountDownTimer(60000, 1000) {        @Override        public void onTick(long millisUntilFinished) {            textView.setEnabled(false);            textView.setText(millisUntilFinished / 1000 + "秒后重发");        }        @Override        public void onFinish() {            textView.setEnabled(true);            textView.setText(textView.getContext().getString(R.string.reverification));        }    };}/** * 如果所给content为空,则设置给定TextView为Gone,否则设置文本并且可见 * @param textView * @param content */public static void showTextOrGone(TextView textView, @Nullable String content){    if (TextUtils.isEmpty(content)){        textView.setVisibility(View.GONE);    }else{        textView.setVisibility(View.VISIBLE);        textView.setText(content);    }}/** * 与上面类似 * @param textView * @param content */public static void showTextOrInVisible(TextView textView, @Nullable String content){    if (TextUtils.isEmpty(content)){        textView.setVisibility(View.INVISIBLE);    }else{        textView.setVisibility(View.VISIBLE);        textView.setText(content);    }}/** * 判断给定的可变数组对象是否为空,对于多次判断,可减少很多代码 * 对象可为TextView(EditText),字符串,List集合等 * @param objs * @return */public static boolean isEmpty(Object... objs) {    boolean isEmpty = false;    for (Object obj : objs) {        if (obj instanceof String) {            if (TextUtils.isEmpty((String) obj)) {                isEmpty = true;            }        } else if (obj instanceof TextView) {            if (((TextView) obj).length() > 0) {                isEmpty = true;            }        } else if (obj instanceof List) {            if (((List) obj).isEmpty()) {                isEmpty = true;            }        }    }    return isEmpty;}/** * 根据给定的字符串数组返回一个拼接的字符串,多个字符串以逗号隔开 * @param strs * @return */public static String listToString(List strs) {    if (strs != null && strs.size() > 0) {        String str = "";        for (int i = 0; i < strs.size(); i++) {            if (i != 0) {                str += "," + strs.get(i);            } else {                str += strs.get(i);            }        }        return str;    }    return "";}/** * 清空给定的可变TextView数组内容 * @param tvs */public static void clearText(TextView... tvs){    for (TextView tv : tvs) {        tv.setText("");    }}/** * 判断所给的TextView是否达到给定的最小长度 * @param minLength * @param tvs * @return */public static boolean isLengthEnough(int minLength,TextView... tvs){    for (TextView tv : tvs) {        if(tv.length() < minLength) {            return false;        }    }    return true;}

更多相关文章

  1. android:gravity="start" Android 多行文本框设置光标从头开始无
  2. android 字符串加解密算法
  3. Android关于EditText的一些常规用法,只输入数字以及光标置顶
  4. Android EditText 光标控制,颜色修改,显示与隐藏
  5. android ListView 示例1 entries 指定一个数组资源
  6. 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜
  7. Android通过AES128加密解密字符串
  8. 2011.07.11(3)——— android xliff字符串操作

随机推荐

  1. Android碎片化问题
  2. Android带进度条的文件上传,使用AsyncTask
  3. android中ImageView设置选中与不选中颜色
  4. 最新的智能移动终端ios,android等市场占
  5. Activity启动模式 及 Intent Flags 与 栈
  6. Android 页面自动跳转方法(比如进入app的
  7. Android底部导航BottomNavigationBar的使
  8. Android(安卓)自定义权限 ( ) 和 Android
  9. 0基础,安卓搭建环境,运行HelloWord
  10. Android Gradle 配置打包输出名称格式