Java 单击按钮时如何在按钮上创建警报对话框?

Java 单击按钮时如何在按钮上创建警报对话框?,java,android,dialog,android-alertdialog,Java,Android,Dialog,Android Alertdialog,我正在尝试开发一个小应用程序作为我考试的一部分。基本上,我有一个指向网页的按钮,我希望在单击按钮时和网页打开之前弹出一个警报对话框。这就是我到目前为止所做的: 主要活动: 公共类MainActivity扩展了AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.lay

我正在尝试开发一个小应用程序作为我考试的一部分。基本上,我有一个指向网页的按钮,我希望在单击按钮时和网页打开之前弹出一个警报对话框。这就是我到目前为止所做的:

主要活动: 公共类MainActivity扩展了AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ButterKnife.bind(this);
    webViewAndroidWeekly();

}


private void webViewAndroidWeekly (){
    Button btnWebpage = findViewById(R.id.btnwebpage);
    btnWebpage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.addCategory(Intent.CATEGORY_BROWSABLE);
            intent.setData(Uri.parse("http://androidweekly.net/"));
            startActivity(intent);
        }
    });
}



@Override
protected void onStop() {
    super.onStop();
    Toast.makeText(this, "Thank you for using this app! :)", Toast.LENGTH_SHORT).show();
    finish();
}
}

该按钮工作,它打开网页,使部分设置。我为警报对话框创建了一个单独的java类,并试图实现它,但我无法理解

对话类:

公共类InternetWarningDialog扩展DialogFragment{

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setIconAttribute(android.R.attr.alertDialogIcon);
    builder.setTitle("Go to WebPage");
    builder.setMessage("Are you sure you want to proceed to webpage? This may incur additional charges based on your mobile data plan!");
    builder.setCancelable(false);

    builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            getActivity().finish();
        }
    });

    builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
        }
    });

    AlertDialog alertDialog = builder.create();
    return alertDialog;
}

}

您已经创建了警报对话框,但要获取警报对话框视图,请使用AlertDialog.Builder上的方法show(),如下所示

AlertDialog alertDialog = builder.create();
builder.show();

我看不到对AlertDialog的任何调用。您需要将对AlertDialog的调用与AlertDialog.show()一起添加,然后如果用户单击Yes,则打开该网页

AlertDialog alertDialog = builder.create();
builder.show();
以前已经有人问过一个熟悉的问题。请参考这个

在mainActivity中创建此方法。。。。。。在需要的主活动中调用showDialog()方法

public void showDialog(){

        InternetWarningDialog exampleDialog = new InternetWarningDialog();
        exampleDialog.show(getFragmentManager(),"Internet Dialog");

    }

如果它起作用,接受答案

复制不起作用的内容?当你运行这个时会发生什么?您是否收到任何错误消息?