2013-02-20 77 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

相关问题