【问题标题】:Android: How to show a popup dialog after tapping the canvas for some timeAndroid:点击画布一段时间后如何显示弹出对话框
【发布时间】:2014-03-06 15:49:34
【问题描述】:

我试图在单击画布 5 秒后输出一个弹出对话框。但是,在我单击画布后,我的对话框会立即出现。我该如何解决这个问题?

我的onTouch代码如下:

public boolean onTouchEvent(MotionEvent event) {

    x = event.getX();
    y = event.getY();

    System.out.println(x);
    System.out.println(y);

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:

            AlertDialog.Builder builder = new Builder(getContext());
                    final EditText text = new EditText(getContext());

                    builder.setTitle("Change Name")
                            .setMessage("New Name").setView(text);
                    builder.setPositiveButton("Change",
                            new DialogInterface.OnClickListener() {

                                public void onClick(DialogInterface di, int i) {
                                    name = text.getText().toString();

                                }

                            });
                    builder.setNegativeButton("Cancel",
                            new DialogInterface.OnClickListener() {

                                public void onClick(DialogInterface di, int i) {
                                }

                            });
                    builder.create().show();

        }

        break;
    case MotionEvent.ACTION_UP:
        sX = event.getX();
        sY = event.getY();
        break;

    case MotionEvent.ACTION_MOVE:
        fX = event.getX();
        fY = event.getY();


        break;

    }// switch

    return true;

}// ontouch

【问题讨论】:

    标签: android canvas dialog popup click


    【解决方案1】:

    您可以尝试像这样使用带有 postDelayed 的 Handler:

     Handler handler = new Handler();
     handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        AlertDialog.Builder builder = new Builder(getContext());
                        final EditText text = new EditText(getContext());
    
                        builder.setTitle("Change Name")
                                .setMessage("New Name").setView(text);
                        builder.setPositiveButton("Change",
                                new DialogInterface.OnClickListener() {
    
                                    public void onClick(DialogInterface di, int i) {
                                        name = text.getText().toString();
    
                                    }
    
                                });
                        builder.setNegativeButton("Cancel",
                                new DialogInterface.OnClickListener() {
    
                                    public void onClick(DialogInterface di, int i) {
                                    }
    
                                });
                        builder.create().show();
                    }
                }, 5000);
    

    【讨论】:

    • 我很高兴能帮上忙 :)
    【解决方案2】:

    我建议你查看Timer 上的文档。

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 2011-01-25
      • 1970-01-01
      • 2012-11-07
      • 2016-01-29
      • 1970-01-01
      相关资源
      最近更新 更多