0

来自官方文档:

Dialog 的子类,可以显示一个、两个或三个按钮。如果您只想在此对话框中显示字符串,请使用 setMessage() 方法。如果您想显示更复杂的视图,请查找名为“custom”的 FrameLayout 并将您的视图添加到其中:

 FrameLayout fl = (FrameLayout) findViewById(android.R.id.custom);
 fl.addView(myView, new LayoutParams(MATCH_PARENT, WRAP_CONTENT));

但问题是 android.R.id.custom 仅在 8 API 级别的操作系统中出现。

如果我使用较少的 API 级别,如何制作自定义 AlertDialog?

4

2 回答 2

1

实际上你所做的如下:

首先,在 res/layout 下创​​建 custom_layout.xml。然后您将下一个代码添加到您的活动中

Dialog myDialog = new Dialog(this);
myDialog .setOwnerActivity(MyParentActivity.this);
myDialog .setContentView(R.layout.custom_layout);
myDialog .setTitle("title");

myDialog.show();你可以使用and来显示和关闭它myDialog.dismiss();

如果您的 custom_layout.xml 中有按钮或其他视图,您可以通过以下方式找到它们

Button myButton = (Button) myDialog.findViewById(R.id.myButton);

我希望这有帮助。

于 2012-01-16T11:53:28.583 回答
0

为了在我正在开发的应用程序中显示工具提示,我创建了一个扩展 Dialog 的新类,并使用 setContentView() 来显示我的自定义布局。根据您的需要(您没有确切说明为什么它必须是 AlertDialog),这也可能对您有用。

这可能有点主观,但为了保持理智,您可能希望在选择目标 API 时考虑当前的 Android 版本分布。根据以下平台分布,只有 10.2% 的 Android 设备使用低于 8 的 API 级别,只有大约 86% 的设备使用 API 级别 8-10。

于 2012-01-16T11:56:00.387 回答