2013-02-20 86 views
0

所以我試圖讓用戶插入的文本有一些格式應xx.xxxx。爲此我使用了textwatcher類。這裏是我的班級:如何控制的EditText文本與textwatcher

edittext.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) { 
      EditText edittext = (EditText) findViewById(R.id.my_edit); 
      if(edittext.getText().length()==2)edittext.setText(edittext.getText().toString()+"."); 

     } 
    }); 

所以我基本上只是添加'。'如果編輯後的長度是2.但是在我這樣做後,它將我的光標設置爲文本字段的開始,當我嘗試刪除點時,它只是重新創建它,因爲長度再次2.我知道有一些解決方案,但它似乎我可以今天「噸弄明白:S

回答

0

,你將需要使用EditText.append代替EditText.setText和EditText上移動光標爲:

Override 
    public void afterTextChanged(Editable s) { 

     if(edittext.getText().length()==2){ 

      // append dot to edittext 
      edittext.append("."); 
      // move cursor at end position in EditText 
      edittext.setSelection(edittext.getText().length()); 
      } 
    } 
+0

當我做到這一點,在4.0V或上級,光標停留在之前「」 ,並在2.2v工作正常,但在兩個我不能刪除字符 – 2013-05-10 04:55:18

相關問題