我在我的应用中创建了一个AlertDialog。在Android L AlertDialog按钮适合对话框之前,但在Android L按钮标签中自动转换标题大小写和不适合对话框的按钮。 请看截图: Android L:
Android Kitkat:
有人看到这个问题。可以帮助我解决这个问题,虽然这是最新的Android版本。
代码 :(我没有使用xml代码创建对话框,这里是java代码:)
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.feedback_label);
alert.setMessage(msgStrId);
alert.setNegativeButton(R.string.close_label, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alert.setPositiveButton(R.string.rate_app, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
alert.setNeutralButton(R.string.feedback_label,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
// TODO Auto-generated method stub
}
});
alert.setOnCancelListener(new DialogInterface.OnCancelListener()
{
@Override
public void onCancel(DialogInterface dialog)
{
// TODO Auto-generated method stub
}
});
AlertDialog alertDialog = alert.create();
alertDialog.show();
答案 0 :(得分:6)
我知道,我来不及了。但我在这里分享我的建议。也许它会有所帮助。
AlertDialog alertDialog = alert.create();
alertDialog .show();
alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setAllCaps(false);
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setAllCaps(false);
alertDialog.getButton(DialogInterface.BUTTON_NEUTRAL).setAllCaps(false);
alertDialog.show();
答案 1 :(得分:0)
答案 2 :(得分:0)
对@Kush的答案稍作修改。您不必多次拨打dialog.show()
。
AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this);
builder.setTitle("Title");
builder.setMessage("message");
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Do Something
}
});
AlertDialog dialog = builder.create();
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setAllCaps(false);
答案 3 :(得分:0)
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
styles.xml
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog">
<item name="android:textAllCaps">false</item>
</style>
答案 4 :(得分:-1)
如果您试图找到解决方案,那么您可能会得到,但对于小屏幕,您将再次卡住,您还需要为它找到一些东西。
所以更好的是划分你的字符串,以便它可以解决任何屏幕的问题。
对于以下代码。
转到strings.xml文件。并更改您的标题如下。
<string name="rate_app">Rate This \n App</string>
<string name="feedback_label">Report \n Issues</string>
如果&#34; \ n&#34;不工作然后用户
标签。希望这会对你有所帮助。
答案 5 :(得分:-3)
在应用主题的定义中使用<item name="android:textAllCaps">false</item>
。然后,应用程序中的所有对话框都不再是大写的。