Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 对话框中的OnclickListener_Android_Button_Dialog_Onclicklistener - Fatal编程技术网

Android 对话框中的OnclickListener

Android 对话框中的OnclickListener,android,button,dialog,onclicklistener,Android,Button,Dialog,Onclicklistener,您好,我正在开发一个应用程序,其中我在活动上使用一个对话框,该对话框有一个按钮,但当我想使用OnClickListener(来自活动)时,它不起作用。我试着在互联网上搜索这个问题的解决方案,但是我找不到一个合适的方法来实现它。因此,任何人都可以提出一个这样做的方法 public void btnStartDialog(View view) { final Dialog dialog = new Dialog(this); dialog.requestWindowFeature(W

您好,我正在开发一个应用程序,其中我在活动上使用一个对话框,该对话框有一个按钮,但当我想使用OnClickListener(来自活动)时,它不起作用。我试着在互联网上搜索这个问题的解决方案,但是我找不到一个合适的方法来实现它。因此,任何人都可以提出一个这样做的方法

public void btnStartDialog(View view) {
    final Dialog dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.custom_dialog);
    final VideoView videoview = (VideoView) dialog.findViewById(R.id.videoView);
    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video);
    videoview.setVideoURI(uri);
    videoview.start();
    videoview.requestFocus();

    final Button stop = (Button)dialog.findViewById(R.id.btnStop);

    stop.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    videoview.stopPlayback();
                    dialog.dismiss();
                }
            });

    dialog.show();
    Thread timerThread = new Thread() {
        public void run() {
            try {
                sleep(34800);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                videoview.stopPlayback();
                dialog.dismiss();
                //close();
            }
        }
    };
    timerThread.start();

}
BTN XML:

 <android.support.design.widget.FloatingActionButton
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:src="@drawable/fab_plus"
    app:backgroundTint="#d20b0d"
    app:borderWidth="0dp"
    app:elevation="10dp"
    app:fabSize="normal"
    android:onClick="btnStartDialog"
    app:pressedTranslationZ="12dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="10dp" />

调用
dialog.show()
;完成所有初始化和接口注册后,或者要将对话框与活动分离以使代码模块化,可以执行以下操作:

  • 创建一个
    扩展
    对话框
  • 在对话框
    class
    中创建
    method
    以接受
    OnClickListener
    并将其保存在对话框
    class
    中的
    class
    级别
  • 在启动该对话框调用后,从
    activity
    ,使用
    activity的
    对话框调用方法
  • 对话框类中
    在对话框按钮上设置一个新的
    OnClickListener
  • 单击该按钮,只需手动回调
    活动的
    OnClickListener

  • 希望有帮助

    调用
    dialog.show()
    ;完成所有初始化和接口注册后,或者要将对话框与活动分离以使代码模块化,可以执行以下操作:

  • 创建一个
    扩展
    对话框
  • 在对话框
    class
    中创建
    method
    以接受
    OnClickListener
    并将其保存在对话框
    class
    中的
    class
    级别
  • 在启动该对话框调用后,从
    activity
    ,使用
    activity的
    对话框调用方法
  • 对话框类中
    在对话框按钮上设置一个新的
    OnClickListener
  • 单击该按钮,只需手动回调
    活动的
    OnClickListener
  • 希望有帮助

    试试这个方法

    final Dialog dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    View view = LayoutInflater.from(activity).inflate(R.layout.custom_dialog,
                null);
    dialog.setContentView(view );
    
    final VideoView videoview = (VideoView) view.findViewById(R.id.videoView);
    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video);
    videoview.setVideoURI(uri);
    videoview.start();
    videoview.requestFocus();
    
    final Button stop = (Button) view.findViewById(R.id.btnStop);
    
    dialog.show();
    
    stop.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View v) {
            videoview.stopPlayback();
            dialog.dismiss();
        }
     });
    
    这样试试

    final Dialog dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    View view = LayoutInflater.from(activity).inflate(R.layout.custom_dialog,
                null);
    dialog.setContentView(view );
    
    final VideoView videoview = (VideoView) view.findViewById(R.id.videoView);
    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video);
    videoview.setVideoURI(uri);
    videoview.start();
    videoview.requestFocus();
    
    final Button stop = (Button) view.findViewById(R.id.btnStop);
    
    dialog.show();
    
    stop.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View v) {
            videoview.stopPlayback();
            dialog.dismiss();
        }
     });
    

    stop.setOnClickListener
    like之后显示对话框

    final Dialog dialog = new Dialog(this);
    
       //Your codes here
    
        stop.setOnClickListener(
                new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                videoview.stopPlayback();
                dialog.dismiss();
            }
        });
    
       dialog.show();
    

    stop.setOnClickListener
    like之后显示对话框

    final Dialog dialog = new Dialog(this);
    
       //Your codes here
    
        stop.setOnClickListener(
                new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                videoview.stopPlayback();
                dialog.dismiss();
            }
        });
    
       dialog.show();
    

    移动
    dialog.show()位于clickListener下方。保留您的代码行对话框。显示();在上面的最终按钮停止=(按钮)对话框中,findViewById(R.id.btnStop);onClickListener下面的行(或)不工作,同样的问题:(移动
    dialog.show();
    在clickListener下面。保留您的代码行dialog.show();在最后一个按钮停止=(按钮)对话框上面。findViewById(R.id.btnStop);onClickListener下面的行(或)不工作,同样的问题:(“调用
    dialog.show())
    在所有初始化和接口注册之后。“这就是重点。”在所有初始化和接口注册之后调用
    dialog.show()这就是问题所在。@adriantersore相同的错误意思?您是否尝试过在按钮的单击处理程序中烤东西?是否确实调用了它?或者您遇到了一些错误?我在代码中发现了2个问题,1-dialog.show();在onClickListener和第二个非常愚蠢的问题的末尾,它是一个浮动操作按钮xD!Thanks@AdrianTesore相同的错误意味着?您是否尝试过在按钮的单击处理程序中烘烤任何东西?是否确实调用了它?或者您遇到了一些错误?我在代码中发现了2个问题,1-dialog.show();在onClickListener的最后,第二个也是非常愚蠢的问题是它是一个浮动操作按钮xD!谢谢