我有一个活动,其中我有一个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();
}
});
答案 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"
即可。