代码之家  ›  专栏  ›  技术社区  ›  DeveloperBug

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

  •  -1
  • DeveloperBug  · 技术社区  · 7 年前

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

    主要活动: 公共类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 回复  |  直到 7 年前
        1
  •  0
  •   narayan maity    7 年前

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

    public void showDialog(){
    
            InternetWarningDialog exampleDialog = new InternetWarningDialog();
            exampleDialog.show(getFragmentManager(),"Internet Dialog");
    
        }
    

    如果它的作品接受答案

        2
  •  0
  •   Shree    7 年前

    您已创建 对话框 ,但要获取警报对话框视图,请使用以下方法 显示() 在…上 警报对话框。建设者 如下所示

    AlertDialog alertDialog = builder.create();
    builder.show();
    
        3
  •  0
  •   Mitali Bhokare varunl    7 年前

    我看不出有什么要求 对话框 . 您需要将对AlertDialog的调用与AlertDialog一起添加。show(),如果用户单击Yes,则打开网页。

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

    以前已经有人问过一个熟悉的问题。请参考此 open a dialog when i click a button