【问题标题】:How to create alert dialog on button when it is clicked?单击按钮时如何在按钮上创建警报对话框?
【发布时间】:2017-12-23 16:08:06
【问题描述】:

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

主要活动: 公共类 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;
}

}

【问题讨论】:

标签: java android dialog android-alertdialog


【解决方案1】:

在mainActivity中创建这个方法......在你想要的主Activity中调用这个showDialog()方法

public void showDialog(){

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

    }

如果它的作品接受答案

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        相关资源
        最近更新 更多