I have an EditText that shows time. After user clicks the EditText I want to show a TimePickerDialog, so I set a View.OnClickListener to my EditText.
But the OnClickListener is behaving weirdly – I touch the EditText and then software keyboard appears (which I don’t want). When I touch again, OnClickListener.onClick() is finally called and the dialog appears.
What should I do if I want the dialog to appear immediately?
Unlike most other controls,
EditTexts are focusable while the system is in ‘touch mode’. The first click event focuses the control, while the second click event actually fires theOnClickListener. If you disable touch-mode focus with theandroid:focusableInTouchModeView attribute, theOnClickListenershould fire as expected.