作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用下面的代码创建并打开一个自定义对话框,它在android 4.2.2 中运行良好,但checkbox 控件的文本在android 2.3.6 中无法显示。
我发现在android 4.2.2中checkbox控件的文字是黑色的,dialog的BackgroundColor是白色的,所以没问题,但是在android 2.3.6中dialog的BackgroundColor是黑色的,所以不好。
我该怎么办?
sms_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="10dp" >
<CheckBox
android:id="@+id/chNoDisplayAgain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="" />
</LinearLayout>
相关java代码:
private void DisplayPrompt(final String key,final boolean isClose,String msg){
LayoutInflater li = LayoutInflater.from(this);
View promptsView = li.inflate(R.layout.sms_dialog, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setView(promptsView);
alertDialogBuilder.setTitle(getString(R.string.TitleWarning));
alertDialogBuilder.setMessage(msg);
alertDialogBuilder.setCancelable(false);
final CheckBox myCheckBox=(CheckBox)promptsView.findViewById(R.id.chNoDisplayAgain);
myCheckBox.setText(getString(R.string.NoDisplayAgain));
alertDialogBuilder
.setPositiveButton(getString(R.string.BtnOK), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
SharedPreferences prefs =PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
if (prefs.contains(key)){
SharedPreferences.Editor editor =prefs.edit();
editor.putBoolean(key, !myCheckBox.isChecked());
editor.commit();
}
if (isClose){
finish();
}
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
最佳答案
我使用这行代码,效果很好。它将使对话框背景颜色与您在 11+ api 上的颜色相同
alertDialogBuilder.setInverseBackgroundForced(true);
alertDialogBuilder.create();
关于android - 自定义对话框中复选框控件的文本在某些Android设备上无法显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20417912/
我是一名优秀的程序员,十分优秀!