fhu*_*cho 51 android android-edittext onclicklistener
我有一个EditText显示时间.用户点击后EditText我想显示一个TimePickerDialog,所以我设置了一个View.OnClickListener到我的EditText.
但是OnClickListener表现得很奇怪 - 我触摸EditText然后软键盘出现(我不想要).当我再次触摸时,OnClickListener.onClick()最后调用并出现对话框.
如果我希望对话框立即显示,我该怎么办?
Kai*_*Kai 112
与大多数其他控件不同,EditText当系统处于"触摸模式"时,s是可聚焦的.第一个单击事件聚焦控件,而第二个单击事件实际触发控件OnClickListener.如果使用android:focusableInTouchModeView属性禁用触摸模式焦点,则OnClickListener应按预期触发.
<EditText
        android:text="@+id/EditText01"
        android:id="@+id/EditText01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false" />
War*_*zit 47
另一个解决方案是使用ontouchlistener:
edittext.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(MotionEvent.ACTION_UP == event.getAction()) {
            mQuaternion_1.setText("" + mQ1);
        }
        return true; // return is important...
    }
});
如果它返回true,则处理事件并且键盘不会弹出.如果你想让键盘仍然弹出并注册点击你就会让它返回false.