如何在单击按钮时创建警告对话框?

时间:2017-12-23 16:08:06

标签: java android dialog alertdialog

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

MainActivity: 公共类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;
}

}

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我看不到对 AlertDialog 的任何要求。您需要添加AlertDialog调用以及AlertDialog.show(),然后在用户单击是时打开网页。

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

之前已经提出过一个熟悉的问题。请参考这个 open a dialog when i click a button

答案 2 :(得分:0)

在mainActivity中创建此方法......在主Activity中调用此showDialog()方法

public void showDialog(){

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

    }

如果它的作品接受答案