2
我需要限制的機器人EditText上逗號後六個字符,我應該能夠增加人物bfor逗號......每個逗號後限制六個字符中的Android
即3000,898989,898345 ... 3000可以是30000或300000 ...無限,但逗號後面的字符應該是固定的六...每個之後
逗號只有六個字符在編輯文本輸入canbe ...
怎麼做呢?
我試圖用下列
public class CustomEditTextActivity extends Activity {
EditText et;
Context cn=null;
int commacount=0;
String aftercomma;
boolean flag=false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cn=this;
et=(EditText)findViewById(R.id.editText1);
// Listener for edit text text change
et.addTextChangedListener(filterTextWatcher);
}
private TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
System.out.println("Inside afterTextChanged() method");
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
System.out.println("Inside beforeTextChanged() method");
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
flag=false;
commacount=0;
String getDataFromeditxt = s.toString();
int comma = getDataFromeditxt.indexOf(',');
String bforcomma = getDataFromeditxt;
if (comma != -1)
{
bforcomma = getDataFromeditxt.substring(0, comma);
}
// Checking for , in the data and setting its position
for (int i = 0; i < getDataFromeditxt.length(); i++) {
char c = getDataFromeditxt.charAt(i);
if(flag){
aftercomma=new StringBuilder().append(c).toString();
int maxLength =bforcomma.length() +6+commacount;
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(maxLength);
et.setFilters(FilterArray);
System.out.println(aftercomma);
}
if (c == ',') {
commacount=commacount+1 ;
flag=true;
}
}
}
};
}
在上面的代碼中的問題是,一旦最大長度被設定我不能鍵入點兒...任何溶液??
這可能不是問題的實際來源,但是'bforcomma.length()+ 6 + commacount;'將使你的第一個逗號後面添加最多6(非逗號)字符,即使如果增加了更多的逗號。不應該是'bforcomma.length()+(6 + 1)* commacount'嗎? – Thomas 2012-02-01 12:12:34
抱歉其實這是我的代碼,我寫了...我採取的條件會發生什麼時,一個逗號來..我knw這是不正確的......我只是發佈我做了......在這種情況下,一旦maxlength設置我不能添加數據bfor逗號 – Rockin 2012-02-01 12:20:32
我不知道如果我得到這個問題。 (1)是否想要在第一個逗號出現後驗證該字符串是否有逗號以6個字符間隔,或者(2)是否要在添加第一個逗號後自動插入逗號? – Nishant 2012-02-01 12:40:50