Android警报对话框中是否可以有多行标题?我尝试了几个解决方案,但没有一个适合我。我总是以标题显示3点(...)字符串。 任何有关相同代码的示例代码或工作示例都将受到高度赞赏。
答案 0 :(得分:28)
您需要使用builder.setCustomTitle():
AlertDialog.Builder builder = new AlertDialog.Builder(context);
TextView textView = new TextView(context);
textView.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur " +
"tincidunt condimentum tristique. Vestibulum ante ante, pretium porttitor " +
"iaculis vitae, congue ut sem. Curabitur ac feugiat ligula. Nulla " +
"tincidunt est eu sapien iaculis rhoncus. Mauris eu risus sed justo " +
"pharetra semper faucibus vel velit.");
builder.setCustomTitle(textView);
文档在这里:AlertDialog.builder
答案 1 :(得分:2)
这是设置标题的方法
AlertDialog.Builder builder = new AlertDialog.Builder(Class name.this);
builder.setTitle("Welcome to App,\n There are no App.\n Add a new data.");
答案 2 :(得分:1)
在我看来,这是一个更简洁的解决方案。
对话主题:
<style name="CustomDialogTheme" parent="ThemeOverlay.MaterialComponents.Dialog.Alert">
<item name="materialAlertDialogTitleTextStyle">@style/TitleStyle</item>
</style>
标题样式:
<style name="TitleStyle" parent="@style/MaterialAlertDialog.MaterialComponents.Title.Text">
<item name="android:maxLines">3</item>
<item name="android:singleLine">false</item>
</style>
在代码中:
MaterialAlertDialogBuilder(context, R.style.CustomDialogTheme)
.setTitle("Long title...")
.show()
PS:您也可以指定不同的数字,不一定是 3。或者随意使用您想要的样式。
答案 3 :(得分:0)
如果您使用警告对话框,则标题可以包含最大 2行,否则您必须使用自定义对话框。
答案 4 :(得分:-1)
实际上这里的“正确”答案是错误的。事实证明,您可以在AlertDialog中将最大行数设置为2以上。这是一个例子:
AlertDialog closePlayerDialog;
.........
Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.AskToClosePlayer))
.setPositiveButton(R.string.Yes, dialogClickListener)
.setNeutralButton(R.string.NoJustCloseApp, dialogClickListener)
.setNegativeButton(R.string.NoContinue, dialogClickListener);
closePlayerDialog = builder.create();
closePlayerDialog.setOnShowListener(new DialogInterface.OnShowListener() {
public void onShow(DialogInterface dialog) {
float textSize = 12.0f;
Button positive = closePlayerDialog.getButton(AlertDialog.BUTTON_POSITIVE);
positive.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize);
positive.setMaxLines(3);
Button neutral = closePlayerDialog.getButton(AlertDialog.BUTTON_NEUTRAL);
neutral.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize);
neutral.setMaxLines(3);
Button negative = closePlayerDialog.getButton(AlertDialog.BUTTON_NEGATIVE);
negative.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize);
negative.setMaxLines(3);
}
});
closePlayerDialog.setCancelable(false);
closePlayerDialog.show();
基本上,您使用onShow
编辑AlertDialog的组件DialogInterface.onShowListener
。