2014-09-05 44 views
0

我有一個編輯文本,它有數字和特殊字符,如1234-11222 我如何刪除numbers-如何清除逐個字符的編輯文本...包括特殊字符?

我有一個代碼,它可以很好地處理字母和數字,但它不適用於特殊字符。

public void onClick(View v) { 
    aadrclear.setVisibility(View.INVISIBLE); 
    String textaddress=addr.getText().toString(); 
    //txtUserName.setText(""); 
    if (textaddress.length() != 0) { 
     textaddress = textaddress.substring(0, textaddress.length() - 1); 
     addr.setText(textaddress); 
     addr.setSelection(textaddress.length()); 
    } 
} 

我有一個編輯文本...如果我輸入數字的- (hyphen)放在4個號碼之間..現在,如果我想使用它不能正常工作,上面的代碼清除..請幫助

+0

什麼是'nameclear'? – 2014-09-05 10:41:06

+0

請開發更多的問題,目前還不清楚 – zozelfelfo 2014-09-05 10:43:47

+0

我編輯了編碼 – anonymous 2014-09-05 10:44:32

回答

0

這將是我對你的問題的理解的解決方案。

if(textaddress.getText().toString().trim().length() > 0) { 
    if(textaddress.getText().toString().charAt(textaddress.getText().toString().trim().length() - 1) != '-') { 
      String result = textaddress.getText().toString().substring(0,textaddress.getText().toString().length() - 1); 
      textaddress.setText(result); 
      textaddress.setSelection(result.length()); 
    } 
}  

通知我,如果這是錯誤的

EDIT

如果妳也有意刪除-也。刪除if condition

現在的代碼會像。

if(textaddress.getText().toString().trim().length() > 0) { 
     String result = textaddress.getText().toString().substring(0,textaddress.getText().toString().length() - 1); 
     textaddress.setText(result); 
     textaddress.setSelection(result.length()); 
} 
+0

我仍然收到錯誤09-05 16:59:28.607:E/RichInputConnection(937):無法連接到編輯器以檢索文本...將在以後重試 – anonymous 2014-09-05 11:32:50

+0

發佈您的logcat。 – ImMathan 2014-09-05 11:34:29

+0

我正在添加一個 - 每4位數字後出現問題? – anonymous 2014-09-05 11:37:21

0

對於加入 - 每4位使用此代碼剪斷

int offset = 0; 
textaddress.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, 
      int count) { 
     // TODO Auto-generated method stub 
     } 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
      int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      offset++; 
      if (textaddress.getText().toString().trim().length() > 0) { 
       if (offset == 4) { 
        String result = text_address.getText().toString() 
          .concat("-"); 
        textaddress.setText(result); 
        textaddress.setSelection(result.length()); 
        offset = 0; 
       } 

      } 
     } 
    }); 
+0

thanku..it正在工作,但..a - 在最後四位數後也添加像1111-1111-1111- ...我不想要最後一個連字符我應該怎麼做... – anonymous 2014-09-12 10:11:54

+0

我已經給出了編輯文本的最大長度爲14,並且如果我將15作爲最大長度插入了額外的連字符,我得到一個錯誤...請幫助 – anonymous 2014-09-12 10:13:18