我有一个编辑文本,用户可以在其中输入金额,我对编辑文本
的限制很少-EDITED-解决了
我如何实现这一目标,是否必须使用filter
中的Regular Expression
创建myEdittext.addTextChangedListener(new TextWatcher() ...
或我可以实现此目标
myAmountEditText.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) {
if(amount!=null && amount.length()>=1 ){
if(amount.contains(".")){
int indexOFdec = amount.indexOf(".");
if(indexOFdec >=0) {
if(amount.substring(indexOFdec).length() >3){
amount = amount.substring(0, amount.length()-1);
myAmountEditText.setText(amount);
myAmountEditText.setSelection(myAmountEditText.getText().length());
}
}
}
Double a = Double.parseDouble(amount.toString());
if(a>0 && a<100000.00){
//my stuff
}else{
Toast.makeText(context, "amount greater than 100000", Toast.LENGTH_SHORT).show();
}
}
});
答案 0 :(得分:1)
您可以使用此代码:
edittext.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){
String strEnteredVal = edittext.getText().toString();
if(!strEnteredVal.equals("")){
int num=Integer.parseInt(strEnteredVal);
if(num<100000){
edittext.setText(""+num);
}else{
edittext.setText("");
}
}
});
我认为我们可以这样做:
String str = editText.getText().toString();
int indexOFdec = str.indexOf(".");
if(indexOFdec >=0) {
if(str.substring(indexOFdec).length() >2)
{
Toast.makeText(getApplicationContext(), "Print a message here", Toast.LENGTH_SHORT).show();
return;
}
}
答案 1 :(得分:1)
您可以在xml代码中执行此操作。在xml中你指定E * ditText *把这两个标签放在那里
android:inputType="numberDecimal"
android:maxLength="7"
现在使用此代码通知用户他们可以在十进制之后放置超过2位数。
txt1 = (EditText)findViewById(R.id.editText1);
submit = (Button)findViewById(R.id.button2);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str = txt1.getText().toString();
int indexOFdec = str.indexOf(".");
if(indexOFdec >=0) {
if(str.substring(indexOFdec).length() >3)
{
Toast.makeText(getApplicationContext(), "put Only 2 digit after decimal", Toast.LENGTH_SHORT).show();
return;
}else{
Toast.makeText(getApplicationContext(), "Correct Number", Toast.LENGTH_SHORT).show();
}
}
}
});
}
它会起作用。