在 Android 中创建 API 级别低于 8 的自定义 AlertDialog

发布于 2024-12-27 06:03:28 字数 438 浏览 3 评论 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?

From the official documentation:

A subclass of Dialog that can display one, two or three buttons. If
you only want to display a String in this dialog box, use the
setMessage() method. If you want to display a more complex view, look
up the FrameLayout called "custom" and add your view to it:

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

But the problem is that android.R.id.custom presents only in OS from 8 API Level.

How can I make custom AlertDialog if I work with less API Level?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等待圉鍢 2025-01-03 06:03:28

实际上你要做的如下:

首先,在 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();myDialog.dismiss();显示和关闭它

,如果您有按钮, 或者您的 custom_layout.xml 中的其他视图,您可以通过

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

我希望这有帮助找到它们。

actually what you do is as follows:

first, you create the custom_layout.xml under res/layout.
then you'll add the next code to your activity

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

and you can show and dismiss it usingmyDialog.show(); and myDialog.dismiss();

if you have buttons or other views inside your custom_layout.xml, you can find them by

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

I hope this helps.

哥,最终变帅啦 2025-01-03 06:03:28

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

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

For displaying tooltips in an app I'm working on, I created a new class that extends Dialog, and used setContentView() to display my custom layout. Depending on your needs (you didn't say exactly why it had to be an AlertDialog), this may work for you as well.

This may be somewhat subjective, but in order to save some sanity, you might want to take current Android version distribution into account when picking a target API. According to the following platform distribution, only 10.2% of Android devices use an API level below 8, with just about 86% using API levels 8-10.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文