在我的应用程序中,我想在多个地方使用AlertDialog框。我可以通过在需要AlertDialog框的任何地方使用代码来做到这一点。但这似乎是浪费,因为只有一个更改,它是相同的代码。如何通过更改变量对AlertDialog框使用相同的代码?

这是我的AlertDialog框代码

private void showInternetConenctionAlert(String alert, String title) {
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setMessage(alert);
    alertDialog.setTitle(title);
    alertDialog.setCancelable(false);
    alertDialog.setPositiveButton("Yes",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(topten.getFile()));
                            activity.startActivity(intent);
                }
            });

    alertDialog.setNegativeButton("No",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                    finish();
                }
            });
    alertDialog.show();
}


在这里onClick是我用过的肯定Button

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(topten.getFile()));
                                    activity.startActivity(intent);


在这里,只有我应该更改才能在其他地方使用的东西是这个。

topten.getFile()


我应该采取什么方法?

最佳答案

您几乎自己完成了此操作,只需向showInternetConenctionAlert函数添加另一个参数,例如String uriString,并将topten.getFile()替换为uriString

private void showInternetConenctionAlert(String alert, String title, final String uriString) {
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setMessage(alert);
    alertDialog.setTitle(title);
    alertDialog.setCancelable(false);
    alertDialog.setPositiveButton("Yes",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uriString));
                            activity.startActivity(intent);
                }
            });

    alertDialog.setNegativeButton("No",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {

                    finish();
                }
            });
    alertDialog.show();
}

09-26 08:53