2013-02-20 3 views
0

그래서 사용자가 xx.xxxx 형식이어야하는 일부 텍스트를 삽입하려고합니다. 그 때문에 저는 textwatcher 클래스를 사용하고 있습니다. 수업은 다음과 같습니다.텍스트 워처로 edittext에서 텍스트를 제어하는 ​​방법

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이기 때문에 다시 만듭니 다. 몇 가지 해결책이 있지만 그럴 수 있습니다. 'T는 오늘 그것을 알아낼 : S

답변

0

대신 EditText.setTextEditText.append을 사용하고 글고에서 커서를 이동해야합니다

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 잘 작동하지만 둘 다 문자를 삭제할 수 없습니다. –

관련 문제