gpt4 book ai didi

Android:在保留默认主题的同时自定义 AlertDialog 的智能方法

转载 作者:行者123 更新时间:2023-11-29 02:03:04 24 4
gpt4 key购买 nike

我想显示一个带有 2 行文本作为其消息的 AlertDialog。第二行文本的字体应该比第一行小,有下划线,我希望在点击它时得到通知。此外,我希望 AlertDialog 看起来类似于通过调用 AlertDialog.Builder.setMessage 构建的对话框。

自定义布局可以使用以下代码完成,但结果看起来与使用 AlertDialog.Builder.setMessage 创建的对话框非常不同。附上的两张图片分别是通过这段代码和调用 AlertDialog.Builder.setMessage 创建的对话框。

关于如何在保留 AlertDialog 的默认主题的同时使用我的自定义布局的任何建议?

    AlertDialog.Builder builder = new AlertDialog.Builder(this);

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);

TextView tv1 = new TextView(this);
tv1.setText("first line");

TextView tv2 = new TextView(this);
tv2.setText("second line");
tv2.setTextSize(TypedValue.COMPLEX_UNIT_PX, tv1.getTextSize() * .8f);
tv2.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
tv2.setOnClickListener(this);

layout.addView(tv1);
layout.addView(tv2);
builder.setView(layout);

builder.show();

enter image description here

enter image description here

编辑

好吧,我无法用下面的代码产生一个合理的结果。这个问题是第二行的文本大小被硬编码为 12 个倾斜,但我希望它实际上按比例小于第一行的文本大小——可能是第一行文本大小的 80%。对如何实现这一点有什么建议吗?

(此外,确定何时单击文本的下划线部分会有点难看,但我想我可以解决)

    String text1 = "First line\n\n";
String text2 = "Second line";

SpannableString content = new SpannableString(text1 + text2);
content.setSpan(new UnderlineSpan(), text1.length(), text1.length() + text2.length(), 0);
content.setSpan(new AbsoluteSizeSpan(12, true), text1.length(), text1.length() + text2.length(), 0);

AlertDialog.Builder builder= new AlertDialog.Builder(this);
builder.setMessage(content);
builder.show();

enter image description here

最佳答案

在您的 list 中定义一个主题为 Dialog 的 Activity ,然后您可以将该 Activity 设计成您想要的样子,它将显示为一个对话框(下面的 Activity 将显示为灰色,就像您想要的那样)...

<activity
android:name=".MyDialog"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Dialog"
>
<intent-filter>
<action android:name="com.my.package.DIALOG" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

请注意,我在此处添加但您的 list 中还没有的唯一内容是 Activity 节点中的 theme 属性。

关于Android:在保留默认主题的同时自定义 AlertDialog 的智能方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com