10

我想在 Android 中自定义一个对话框。我知道如何设置对话框的标题:

dialog.setTitle("O message");

现在我想在标题前面设置图标。我怎样才能做到这一点?

Dialog dialog;
dialog = new Dialog(this);
dialog.setContentView(R.layout.layouterror22);      
dialog.setTitle("O message");
4

6 回答 6

27

您可以使用以下代码添加图标:

Dialog dialog = new Dialog(context);

dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);
dialog.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.your_icon); 
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Dialog Title");

dialog.show();

请参阅“自定义对话框 android 中的图标”

于 2012-07-12T02:40:56.760 回答
10

用这个,

dialog.setIcon(R.drawable.ic_launcher)

您需要更多自定义方式,请参阅此站点http://www.androidhive.info/2011/09/how-to-show-alert-dialog-in-android/

于 2012-07-11T10:09:23.950 回答
5
dialog.setIcon(Drawable icon);

或者

dialog.setIcon(int resId);

希望这可以帮助。

于 2012-07-11T10:09:05.697 回答
3

可能你应该使用 AlertDialog。如果你这样做,只是

AlertDialog.Builder b = new AlertDialog.Builder(yourContext);
b.setIcon(yourIcon);
/* add other properties thanks to b.set... */
b.create().show();

希望这对您有所帮助。

于 2012-07-11T10:11:13.900 回答
0

要将图标添加到警报对话框,您需要向其中添加以下代码。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
      /*  builder.setMessage("Visit Be Developers.tech");
        builder.setTitle("Alert");
    builder.setIcon(R.drawable.ic_baseline_call_24);//This line should be added

        builder.setPositiveButton("Visit", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });
        AlertDialog dialog = builder.create();
        dialog.show();

有关添加列表等更多自定义,请查看 https://bedevelopers.tech/alert-dialog-in-android-show-alert-using-the-builder/

于 2021-01-01T13:42:36.233 回答
0

如果您使用的是viewPager带有片段的 a,您可以safeExit()从 的onBackPressed()中调用 a MainActivity。这就是我所做的,我从来没有遇到任何问题:

    @Override
    public void onBackPressed() {

        try {
            if (getFragmentManager().getBackStackEntryCount() > 1) {
                FragmentManager.BackStackEntry first = getFragmentManager().getBackStackEntryAt(0);
                getFragmentManager().popBackStack(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
            } else
                safeExit();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    private void safeExit() {
        new Builder(this).setIcon(R.drawable.ic_launcher).setTitle("Exit!").setMessage(
                "Close Application?").setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                MainActivity.this.finish();
            }
        }).setNegativeButton("No", null).show();
   }
于 2017-05-15T21:19:27.680 回答