我遇到了AlertDialog
我以编程方式构建的问题:它的消息在运行4.1.2的模拟器中正确显示。但是在我的设备(运行2.3.7的华为U8510)上,该消息不会自动换行。
我可以在代码中添加任何内容,以便AlertDialog允许其消息包装吗?我显然不想添加手动换行符。 (问题是,即使我添加手动换行符,Dialog也只显示第一行)
我想我在这里错过了一些东西,但我无法在任何地方找到答案 - 它们都是指手动添加换行符。
这是相关的代码(是的,我现在使用硬编码的叮咬):
AlertDialog.Builder builder= new AlertDialog.Builder( activity );
builder.setPositiveButton( ...
builder.setNegativeButton( ...
builder.setTitle( "Wirklich löschen?" );
builder.setMessage( "Soll das Item \"" + deleteItem + "\" wirklich gelöscht werden?" );
AlertDialog dialog= builder.create();
dialog.show();
以下是截图。您可以在模拟器(大图像)上看到消息如何正确包装,但不能在设备上查看。
答案 0 :(得分:3)
我不确定问题是什么,或者它是特定于设备还是什么,但我可以建议解决这种情况..您可以创建一个带有textview的自定义布局和底部的两个按钮并附加该布局到这个对话框。现在,您可以根据需要处理文本视图...
答案 1 :(得分:1)
我最近在从Android Studio移回Eclipse的项目中遇到了这个问题。
在这种情况下,问题是没有定义minSdkVersion。如果您未声明此属性,系统将采用默认值“1”,表示您的应用程序与所有Android版本兼容。
显然API级别1(甚至比Cupcake 1.5更早)没有包装AlertDialog消息文本。
通过添加
解决了这个问题<uses-sdk android:minSdkVersion="16" />
到Android Manifest。 16(minly Bean)的minSdkVersion是此应用程序所需的。我不知道AlertDialog何时开始包装消息文本,但早期的API级别,例如10(姜饼)也可能有用。
另一方面,其他人发现在早期版本的Android上使用Theme.Holo会导致此问题,例如: Android TextView's stopped wrapping text
答案 2 :(得分:0)
如果您希望在所有Android版本中保持一致的外观,则应考虑使用自定义布局。
在这种情况下,一个简单的TextView
应该完成这项工作。您可以设置样式,对齐和修改文本外观以匹配您需要的任何内容。
<强> custom_dialog.xml 强>:
<TextView
android:id="@+id/custom_dialog_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="20sp" />
然后使用以下方法将其应用于对话框:
dialog.setContentView(R.layout.custom_dialog);