Android-EditText金額入力制御桁数(小数点上位、小数点下位)
4511 ワード
原理は簡単にeditText入力を傍受し、小数点前の桁数と小数点後の桁数を判断し、超えると入力した文字を削除し、下に直接コードを貼り付ける.
使用方法は次のとおりです.
コードは簡単で、注釈もはっきりしていて、あなたに役に立つことを望んでいます!
/**
* @Description:EditText : , 2
* @author: jiawen.gu
* @CreateDate: 2017/11/6
*/
public class EditTextJudgeNumberWatcher implements TextWatcher {
private EditText editText;
public EditTextJudgeNumberWatcher(EditText editText) {
this.editText = editText;
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
judgeNumber(editable,editText);
}
/**
* ( : , 2 )
*
* @param edt
*/
public static void judgeNumber(Editable edt,EditText editText) {
String temp = edt.toString();
int posDot = temp.indexOf(".");//
int index = editText.getSelectionStart();//
// if (posDot == 0) {//
// edt.delete(0, temp.length());//
// return;
// }
if (posDot < 0) {//
if (temp.length() <= 5) {
return;//
} else {
edt.delete(index-1, index);//
return;
}
}
if (posDot > 5) {// 5
edt.delete(index-1, index);//
return;
}
if (temp.length() - posDot - 1 > 2)//
{
edt.delete(index-1, index);//
return;
}
}
}
使用方法は次のとおりです.
EditText editText= (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(new EditTextJudgeNumberWatcher(editText));
コードは簡単で、注釈もはっきりしていて、あなたに役に立つことを望んでいます!