【问题标题】:how to hide virtual keyboard on edittext click如何在edittext单击时隐藏虚拟键盘
【发布时间】:2014-06-07 18:35:44
【问题描述】:

我有一个活动,其中我有一个编辑文本。 点击edittext我想打开TIMEPICKER DIALOG。我已经为它编写了代码及其工作。 问题是,当我开始活动并第一次单击edittext 时,虚拟键盘会打开,但是随后单击edittext TIMEPICKERDIALOG 会打开。 我不希望虚拟键盘第一次打开。我希望 TIMEPICKER DIALOG 每次都打开。 请帮忙

这是我在点击edittext时打开timepickerdialog的代码

timeText=(EditText)findViewById(R.id.editText2);

      timeText.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                Calendar mcurrentTime = Calendar.getInstance();
                int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
                int minute = mcurrentTime.get(Calendar.MINUTE);

                TimePickerDialog mTimePicker;
                mTimePicker = new TimePickerDialog(RemindDetail.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                        timeText.setText( selectedHour + ":" + selectedMinute);
                        calender[3]=selectedHour;
                        calender[4]=selectedMinute;
                    }
                }, hour, minute, false);//Yes 24 hour time
                mTimePicker.setTitle("Select Time");
                mTimePicker.show();

            }
        });

【问题讨论】:

标签: android


【解决方案1】:

在编辑文本中设置此属性

android:focusable="false"

【讨论】:

  • @AndroidWarrior:谢谢,但没有显示光标。如何包括光标但不包括键盘?编辑:找到答案here....
【解决方案2】:

您好几天前我遇到了同样的问题。然后我在EditText 上使用了onTouchListener。它能做什么。当有人触摸 EditText. 使用 onTouchListener 而不是 onClickListener 在 EditText 上时,它将打开您的日期选择器。

您可以使用此代码。我为 android xamarin 开发的将其更改为 android java。并扩展View.IOnTouchListener

 DOB.SetOnTouchListener (this);


 protected override Dialog OnCreateDialog (int id)
    {

        if (id == DATE_DIALOG_ID) {
            return new DatePickerDialog (this, HandleDateSet, _date.Year,
                _date.Month - 1, _date.Day);
        }
        return null;
    }

    void HandleDateSet (object sender, DatePickerDialog.DateSetEventArgs e)
    {
        _date = e.Date;

        DOB.Text = _date.ToString ("d");
    }



public bool OnTouch(View v, MotionEvent e)
    {
        if (e.Action == MotionEventActions.Up) {
            ShowDialog (DATE_DIALOG_ID);
        }
        return true;

    }

希望对你有帮助。

【讨论】:

    【解决方案3】:

    只需在您的 xml 中设置 EditText 属性,如 android:focusable="false"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多