2012-05-08 6 views
3

EditText에 onClick 이벤트가있어 한 번의 클릭으로 작업이 완료되도록 할 수 있습니다. 한 번의 클릭으로 edittext

private void addListenerOnButton() { 

     dateChanger = (EditText) findViewById(R.id.date_iWant); 

     dateChanger.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 

       showDialog(DATE_DIALOG_ID); 
      } 
     }); 
    } 

는 .... 한 번의 클릭 그냥 화면 키패드를 제공하지만 난 두 번 경우에만 표시되는 날짜 선택기 대화 상자가

+0

onClick()을 사용해야합니다.이 onTouch()도 얻을 수 있습니다 .. – user370305

+0

무엇이 다른가요? (사실은 모르겠다.) –

+0

dateChanger.setOnTouchListener와 onTouch()는 if (event.getAction() == MotionEvent.ACTION_UP) {showDialog (DATE_DIALOG_ID); } – user370305

답변

0

재 작성

내가이 클릭 제외대로 작동하지 않는 사용자가 한 번 클릭하거나 트랙볼/방향 패드로 탐색 할 때 대화 상자를 시작하는 EditText. 이 방법을 사용합니다 :

  • 대화 상자를 여는 데 초점을 맞추기 위해 OnFocusChangeListener를 사용하십시오.
  • 사용자가 대화 상자를 닫을 때 사용자가 대화 상자없이 텍스트를 입력하지 못하도록 차단 문자를 지우려면 dismissDialog()를 재정 의하여 (내가 알 수있는 한) .
    • 는 터치 이벤트에 대한 OnClickListener를 사용 :

  • 은 또한이 (그러나 나는 지금이 방법은 운동을 트랙볼 반응 했는가 기억) 노력했다.
  • 사용자 입력을 방지하기 위해 setFocusable(false)을 설정하십시오.

희망이 있습니다.

+0

나는 chaged ... 이번엔 두 번 클릭 할 필요가 없습니다 ...하지만 첫 번째 클릭은 대화 상자를 표시하지 않습니다 .... 다음 클릭 1 번으로보기를 클릭하십시오 –

0

코드를 onClickListener에서 OnFocusChangeListener로 변경하십시오.

private void addListenerOnButton() { 

    dateChanger = (EditText) findViewById(R.id.date_iWant); 

    dateChanger.setOnFocusChangeListener(new OnFocusChangeListener() { 

     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus) { 
       showDialog(DATE_DIALOG_ID); 
      } 
     } 
    }); 
} 
0

EditTextsingleClick을 의미하지 않습니다.

클릭 리스너를 사용해서는 안된다는 뜻입니다. 오히려 당신은 같이 할 수있다

또한 onFocusChangeListener를 사용하십시오 또한 100 % 정확한 접근법이 아닙니다.

EditText 대신 TextView을 쓰고 onClick을 쓰고 필요한 경우 TextView에 배경 이미지를 제공하십시오. 우리가 레이아웃 페이지에 글고 치기에 android:focusableInTouchMode="false"를 추가하면


enter image description here

+0

하지만 날짜 필드에 대한 textview를 사용하면 잘 보이지 않을거야 ?? –

+0

하나의 배경 이미지 만 사용하면 멋지게 보일 것입니다. 예를 들어 한 이미지를 붙여 넣으십시오. – MKJParekh

9

은 그것의 OnClickListener를에 singleclick에서 작동합니다. onFocusChangeListener를 처리 할 필요가 없습니다.

관련 문제