Java 单击按钮时如何在按钮上创建警报对话框?
我正在尝试开发一个小应用程序作为我考试的一部分。基本上,我有一个指向网页的按钮,我希望在单击按钮时和网页打开之前弹出一个警报对话框。这就是我到目前为止所做的: 主要活动: 公共类MainActivity扩展了AppCompatActivity{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
@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");
}
如果它起作用,接受答案复制不起作用的内容?当你运行这个时会发生什么?您是否收到任何错误消息?