一,要想限制EditText的输入大小,经过学习和测试;最好是创建自己的EditText(当然是继承的

      

public class DecimalEditText extends android.support.v7.widget.AppCompatEditText {    /**     * 保留小数点前多少位,默认三位,既到千位     */    private int mDecimalStarNumber = 3;    /**     * 保留小数点后多少位,默认两位     */    private int mDecimalEndNumber = 2 ;    public DecimalEditText(Context context) {        this(context, null);    }    public DecimalEditText(Context context, AttributeSet attrs) {        this(context, attrs, R.attr.editTextStyle);    }    public DecimalEditText(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.DecimalEditText);                mDecimalStarNumber = typedArray.getInt(R.styleable.DecimalEditText_decimalStarNumber, mDecimalStarNumber);        mDecimalEndNumber = typedArray.getInt(R.styleable.DecimalEditText_decimalEndNumber, mDecimalEndNumber);        typedArray.recycle();        init();    }    /**     * 初始化     */    private void init() {        setFilters(new InputFilter[]{new InputFilter() {            @Override            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {                String lastInputContent = dest.toString();                LogUtils.d("source->" + source + "--start->" + start + " " +                        "--lastInputContent->" + lastInputContent + "--dstart->" + dstart + "--dend->" + dend);                if (source.equals(".") && lastInputContent.length() == 0) {                    return "0.";                }                if (!source.equals(".") && !source.equals("") && lastInputContent.equals("0")) {                    return ".";                }                if (source.equals(".") && lastInputContent.contains(".")) {                    return "";                }                if (lastInputContent.contains(".")) {                    int index = lastInputContent.indexOf(".");                    if (dend - index >= mDecimalEndNumber + 1) {                        return "";                    }                } else {                    if (!source.equals(".") && lastInputContent.length() >= mDecimalStarNumber) {                        return "";                    }                }                return null;            }        }});    }    public int getDecimalStarNumber() {        return mDecimalStarNumber;    }    public void setDecimalStarNumber(int decimalStarNumber) {        mDecimalStarNumber = decimalStarNumber;    }    public int getDecimalEndNumber() {        return mDecimalEndNumber;    }    public void setDecimalEndNumber(int decimalEndNumber) {        mDecimalEndNumber = decimalEndNumber;    }}
二,对应的属性

                        
三,对应要实现的功能,Activity就非常简单了

    

class Main17Activity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main17)    }}

四,对应布局为

<?xml version="1.0" encoding="utf-8"?>    


  

更多相关文章

  1. android的edittext默认不获得焦点
  2. React Navigation-StackNavigator
  3. android开发之修改ListView默认滑动条样式
  4. 在 android 里 常用的 默认开关的 意义
  5. android 如何替换系统的默认静态壁纸?
  6. android adb录屏命令
  7. [Android] 修改Android(安卓)Virtual Device Manager 创建虚拟机
  8. 记录博客“参考网站”专栏源码
  9. android 开发文档翻译

随机推荐

  1. android——Serializable & Parcelable
  2. Android的dumpsys命令
  3. Android单元测试初探——Instrumentation
  4. Android中的Intent和Intent-filter总结
  5. Java for Android
  6. android之inputType属性
  7. Android进程间通信(一):AIDL使用详解
  8. Android之父深入解析Android
  9. Android(安卓)TextView属性详解
  10. [置顶] android调用第三方库——第四篇—