单击edittext

时间:2012-05-08 06:20:49

标签: android android-edittext

如何使EditText具有onClick事件,以便单击即可完成操作。

private void addListenerOnButton() {

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

        dateChanger.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                showDialog(DATE_DIALOG_ID);
            }
        });
    }

这不是例外情况....单击只显示屏幕键盘,但不是仅在双击时出现的datepicker对话框

4 个答案:

答案 0 :(得分:9)

如果我们只是在布局页面上的edittext中添加android:focusableInTouchMode="false",那么它应该在其onclicklistener上单击。无需处理onFocusChangeListener。

答案 1 :(得分:0)

<强>重写

我有一个EditText,当用户点击一次或使用轨迹球/方向键导航到它时,会启动一个对话框。我用这种方法:

  • 使用OnFocusChangeListener获得焦点以打开对话框。
  • 当用户关闭对话框时,覆盖dismissDialog()以清除EditText中的焦点,防止用户在没有对话框的情况下输入文本(据我所知)

我也试过这个(不过我现在记得这个方法确实对轨迹球运动有所反应):

  • 使用OnClickListener进行触摸事件。
  • 设置setFocusable(false)以阻止用户输入。

希望有所帮助。

答案 2 :(得分: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);
            }
        }
    });
}

答案 3 :(得分:0)

EditText不适用于singleClick

我的意思是你不应该使用Click Listener。 而你可以这样做,

使用onFocusChangeListener,这也不是100%正确的方法。

最好使用EditText使用TextView一个onClick来写{{1}},如果需要,可以为该TextView提供背景图片。


enter image description here