我已经实现了一个带有 Edittext 的 Android 屏幕。当用户触摸此 EditText 时,会出现一个日期选择器对话框。这一切都工作正常,但我的问题是,当用户触摸 EditText 时,会出现两个日期选择器对话框。我只想出现一个。
不知道有没有人遇到过这个问题,还是只有我一个人遇到过这个问题?如果是,有什么解决办法吗?我用谷歌搜索了一下,但什么也没找到:/
关于代码,这就是我所拥有的:
datebox = (TextView)findViewById(R.id.datebox);
datebox.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
timedatedialog(false);
return false;
}});
public void timedatedialog(boolean flag) {
if(flag==false){
DatePickerDialog dateDlg = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth)
{
Time chosenDate = new Time();
chosenDate.set(dayOfMonth, monthOfYear, year);
long dtDob = chosenDate.toMillis(true);
CharSequence strDate = DateFormat.format("MMMM dd, yyyy", dtDob);
Toast.makeText(ForecastingActivity.this,
"Date picked: " + strDate, Toast.LENGTH_SHORT).show();
datebox.setText(strDate);
}}, 2012,0, 1);
非常感谢任何帮助。谢谢!
最佳答案
将您的 OnTouchListener
更改为 OnClickListener
或类似的。 onTouch()
方法会针对任何类型的触摸事件调用,即:
如果您单击 View ,您将进入 onTouch()
并执行向下事件,
然后,如果你的手指稍微移动一下,你就会进入 onTouch()
并执行 move-action,
最后,您抬起手指并再次获得 onTouch()
,这次是一个向上事件。
另一方面,如果您单击 View ,OnClickListener
只会运行一次。
关于java - Android 编辑文本和对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10105920/