如何在edittext单击上隐藏虚拟键盘

时间:2014-06-07 10:00:18

标签: android

我有一个活动,其中我有一个edittext。 点击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();

            }
        });

3 个答案:

答案 0 :(得分:3)

在编辑文本中设置此属性

android:focusable="false"

答案 1 :(得分:0)

在我遇到同样的问题前几天。然后我在onTouchListener上使用了EditText。它能做什么。如果有人触摸EditText.使用onTouchListener,而不是{Edit了“onClickListener,它会打开你的日期选择器。

您可以使用此代码。我开发的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;

    }

希望它可以帮到你。

答案 2 :(得分:-2)

只需在xml中设置EditText属性android:focusable="false"即可。

相关问题