我定位API级别8+。我需要一个带标题,消息,带有一些文本和两个经典底部按钮的复选框的对话框。 我尝试使用标准的AlertDialog和方法setView来添加复选框:
checkbox.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frame_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp" >
<CheckBox
android:id="@+id/checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:checked="true"
android:textSize="14sp" >
</CheckBox>
</FrameLayout>
showDialog方法
private void showDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("Title");
builder.setMessage("Message");
View checkboxView = View.inflate(activity, R.layout.checkbox, null);
CheckBox checkBox = (CheckBox) checkboxView.findViewById(R.id.checkbox);
checkBox.setText("Some checkbox text");
builder.setView(checkboxView);
// First button
builder.setNegativeButton(getString(R.string.not_now),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
});
// Second button
builder.setPositiveButton(getString(R.string.help),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
});
builder.create();
builder.show();
}
我的AppBaseTheme有父母&#34; Theme.AppCompat.Light&#34; (/res/values/styles.xml),对于值-v11和&#34; Theme.AppCompat.Light.DarkActionBar&#34;对于值-v14。 我在2.3.3中遇到问题,复选框和文本没有边距或填充(我已将它们设置为xml),此外文本以黑色为背景。 4.4中的一切看起来都很好。 我已经阅读了很多关于这个问题的内容,但我仍然感到困惑,没有解决方案。你能帮我吗?
答案 0 :(得分:0)
您可以使用以下方法强制对话框的白色背景:
if(Build.VERSION.SDK_INT <= 10) {
builder.setInverseBackgroundForced(true);
}