java - Android 编辑文本和对话框

标签 java android datepicker textview android-edittext

我已经实现了一个带有 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/

相关文章:

datepicker - 仅适用于月份的 Quicksight 日期选择器

Java:按第一列(int 填充)对二维数组进行排序

android - 直接嵌套线性布局只显示第一个 subview

java - 安卓 IllegalArgumentException lockCanvas()

angularjs - 使用工厂响应 UI Bootstrap Datepicker 禁用日期

javascript - jQuery 的日期选择器 "minDate"不起作用

java - JVM 堆已用百分比 - 何时生成警报

java - 将监听器添加到 SpanElement

java - 使用 Java 将测试结果传递给 Selenium 中的 ITestResult

java - 如何以编程方式将 EditText 背景设置为 Holo 主题 Api 11-17 Android 中的默认背景