2014-10-05 5 views
0

텍스트 (버튼 없음)로 일부 필드를 만들어 datepicker 대화 상자를 열려고합니다. 나는 완전히 begginer이고 쉬운 예제에서 그것을 시도하고있다.onTouchListener가 두 번 동작합니다.

firstbirth.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View view, MotionEvent motionEvent) { 
       Toast.makeText(getApplicationContext(), "ahooj", Toast.LENGTH_LONG).show(); 
       return false; 
      } 
     }); 

firstbirth는 스피너입니다. Edittext로 시도해 본 결과는 같았습니다. 아무도 도와 줄 수 있습니까?

미리 감사드립니다.

답변

1

대신 OnClickListener를 사용하십시오. 당신이 어떤 이유로, 원하는 경우 OnClickListener를 만 (onclick을 :))

한 번 트리거됩니다 반면

setOnClickListener(View.OnClickListener l) 

OnTouchListeners는 (위, 아래 터치와 같은 등 터치 업) 여러 터치 이벤트를 트리거합니다 OnTochListener를 사용하면 한 번만 호출 할 수 있습니다.

시도 :

@Override 
public boolean onTouch(View view, MotionEvent motionEvent) { 
if (motionEvent.getAction() == MotionEvent.ACTION_UP { // another option would be ACTION_DOWN for example 
    Toast.makeText(getApplicationContext(), "ahooj", Toast.LENGTH_LONG).show(); 
    return true; 
    } 
return false; 
} 
0

감사는 논리 소리하지만 사용할 때 OnClick 이벤트 응용 프로그램을 초기화하는 동안 아래로 느꼈다.

firstbirth.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       DialogFragment dd1 = new DatePickerFragment(); 
       dd1.show(getFragmentManager(), "Select a date"); 
      } 
}); 

onTouch 이벤트를 사용할 때 문제가 DialogFragment와 호환되지 않습니다. 감사합니다 :)

+0

당신이 무슨 뜻인지 확실하지. 온 터치를 사용하려면 내 답변에서 편집을보십시오. – pumpkee

+0

"Unfortnuately, application .. end working"이라고 말합니다. – Filip

+0

당신의 솔루션은 정말 훌륭합니다. 감사 :) – Filip