금액 입력 상자

1735 단어 importsourcepublic

import android.text.InputFilter;
import android.text.Spanned;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* joy on 2015/12/17.
*
*       
*/
public class EditInputFilter implements InputFilter {
/**
*     ,   int    
*/
public static final int MAX_VALUE = 2147483647;
/**
*           
*/
public static final int PONTINT_LENGTH = 2;
Pattern p;
public EditInputFilter(){
p = Pattern.compile(“[0-9]*”);   //        
}
/**
*  source           
*  start               ,   0
*  end               ,   source  -1
*  dest             
*  dstart           ,   0
*  dend           ,   dest  -1
*/
@Override
public CharSequence filter(CharSequence src, int start, int end,
Spanned dest, int dstart, int dend) {
String oldtext =  dest.toString();
System.out.println(oldtext);
//       
if (“”.equals(src.toString())) {
return null;
}
//             
Matcher m = p.matcher(src);
if(oldtext.contains(“.”)){
//           ,      
if(!m.matches()){
return null;
}
}else{
//          ,          
if(!m.matches() && !src.equals(“.”) ){
return null;
}
}
//         
if(!src.toString().equals(“”)){
double dold = Double.parseDouble(oldtext+src.toString());
if(dold > MAX_VALUE){
return dest.subSequence(dstart, dend);
}else if(dold == MAX_VALUE){
if(src.toString().equals(“.”)){
return dest.subSequence(dstart, dend);
}
}
}
//           
if(oldtext.contains(“.”)){
int index = oldtext.indexOf(“.”);
int len = dend � index;
//     2 
if(len > PONTINT_LENGTH){
CharSequence newText = dest.subSequence(dstart, dend);
return newText;
}
}
return dest.subSequence(dstart, dend) +src.toString();
}
}

InputFilter[] filters = { new EditInputFilter() };
edit_takeout_money.setFilters(filters);

좋은 웹페이지 즐겨찾기