2011-12-23 4 views
0

숫자 만 허용하는 내 응용 프로그램에 edittext가 있습니다. 기본적으로 0으로 설정됩니다. 하지만 내가 어떤 숫자를 입력하면 왼쪽의 처음 0을 덮어 쓰려고합니다. 이제 edittext에 문제가 있습니다. 예를 들어, 1을 삽입하면 01이 아니라 1에 해당합니다.edittext에서 값을 덮어 쓰는 법

value = (EditText)findViewById(R.id.value); 
    value.addTextChangedListener(new TextWatcher() { 
     public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) 
     { 
      if(arg0.length()==0) 
      { 
       value.setText("0"); 
       int i = value.getText().length(); 
       value.setSelection(i); 
      } 
     } 

     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
       int arg3) { 
      // TODO Auto-generated method stub 
      } 

     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 
     } 
    }); 

어떻게 구현할 수 있습니까? 아니면 가능할까요?

+0

는 ** 0 ** 처음에 힌트를 표시인가? 힌트 인 경우 EditText에 ** android : hint = "0"** 속성을 설정하십시오. – Ian

답변

3

xml 파일에 android:hint을 설정할 수 있습니다. 예를 들어

,

<EditText 
android:id="@+id/value" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:hint="0"/> 
+0

감사합니다. 정말 도움이되었습니다. –

0

beforeTextChanged 함수 호출에서 문자열을 빈 것으로 변경하고 onTextChanged를 그대로 둘 수 있습니다.

+0

감사합니다. 그것은 정말로 나를 도왔습니다 –

0

대신 value.setText ("0"); use value.setHint ("0");

+0

감사합니다. 그것은 정말로 나를 도왔습니다 –

0

초기에 0을 표시하려면 setHint (int) 메서드를 사용하십시오. 따라서 사용자가 무언가를 입력하면 자동으로 지워지고 원하는대로 텍스트를 가져올 수 있습니다.

+0

감사합니다. 그것은 정말로 나를 도왔습니다 –

2

찾고있는 것을 달성하기위한 많은 옵션이 있습니다. 이미 언급 한 것들 외에, 나는 EditText의 속성 android:selectAllOnFocus="true"을 살펴볼 가치가 있다고 말할 수 있습니다. 기본값을 사용하는 것이 편리하며, 값을 변경하면 '백 스페이스'가 필요하지 않으므로 사용자에게 친숙합니다.

+1

감사합니다. 그것은 정말로 나를 도왔습니다 –

관련 문제