2012-09-26 2 views
4

비활성화 된 edittext 필드가 눌려지면 캡처하려고합니다. (변경 만하고 싶습니다. 텍스트를 삽입하고 싶지 않습니다.) onClickListener를 할당했지만 호출되지는 않습니다. 제안 사항이 있습니까? 내가들을 수있는 다른 이벤트가 있습니까?비활성화 된 edittext에 대한 onClickListener가 호출되지 않습니다.

final EditText field = column.get(i); 
field.setEnabled(false); 
field.setClickable(true); 
field.setFocusable(false); 
field.setFocusableInTouchMode(false); 

field.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       ((EditText)v).setText("a"); 

      } 
     }); 

고마워요!

+0

'setClickable (참)'setOnClickListener''에서 호출되며, setFocusableInTouchMode''의 처리가 이루어집니다 'setFocusable'. 그래서 그 두 줄은 실제로 필요하지 않습니다 – Xavier

답변

4

View이 비활성화되면 클릭 이벤트를 전달할 수 없습니다.

따라서 변경 시도 :

field.setEnabled(false); 

사람 :

field.setEnabled(true); 
+0

시도해도, 아직 작동하지 않습니다 .. – Blondy314

+0

업데이트 된 답변을 지금 사용해보십시오. 'field.setFocusableInTouchMode (false);를 설정했는지 확인하십시오. EditText가 소프트 키보드를 올리도록 허용하지 않습니다. – waqaslam

+0

그건 속임수였습니다! 감사! – Blondy314

0
final EditText field = column.get(i); 
field.setCursorVisible(false); 

field.setOnFocusChangeListener(new OnFocusChangeListener() { 

     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      if (hasFocus) { 
       field.setText("something"); 
       field.clearFocus(); 
      } 
     } 
    }); 
관련 문제