您的位置:首页 > 其它

EditText输入长度动态控制,最大长度为16位,小数点后面最大为2位,输入整数只能为13位

2014-11-15 13:28 435 查看
首先在xml 中把inputType设置为numberDecimal (包含小数点)然后在把maxLeng设置为16

package com.example.numbertest;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText=(EditText) this.findViewById(R.id.et);
editText.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}

@Override
public void afterTextChanged(Editable s) {
String str=s.toString();

//如果字符串中有小数点,就对小数点进行分割,
if(str.contains(".")){
String[] strArr = str.split("\\.");
//判断小数点后面的位数,如果超过两位就删除后面的数据,不让输入
if(strArr.length>1 && strArr[1].length()>2){
s.delete(str.length()-1, str.length());
}
}
//如果不包含小数点,只能输入13整数,如果包含小数点就按照小数点的进行处理
if(str.length()>13 && !str.contains(".")){
s.delete(str.length()-1, str.length());
}

}
});
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: