如何在对话框中自定义android中CheckMark颜色的颜色。目前,默认情况下,复选标记的颜色默认为绿色。我想将其定制为不同的颜色如何在对话框中自定义android中CheckMark颜色的颜色。 :android
6
A
回答
0
您必须覆盖具有修改的绘图资源的复选框小部件样式。 这里是很好的指南,开始与风格/主题http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/
6
如果你看一下styles.xml from android system,你将看到复选框类型的定义如下:
<style name="Widget.CompoundButton.CheckBox">
<item name="android:background">@android:drawable/btn_check_label_background</item>
<item name="android:button">@android:drawable/btn_check</item>
</style>
,如果你搜索的资源系统,您会看到btn_check是一个带有2个状态(开/关)的可绘制选择器,并且选中了绿色或不绿色。
所以,如果你想拥有自己的颜色抽拉,这里是你应该做的:
- 创建一个styles.xml
- 定义2个绘图资源使用
- 创建XML文件配套的选择
你可以找到完整的文档相当的相关详细的the android google doc.
1
要更改多选择对话框中的复选框,则需要自定义适配器为你的对话,这样才能访问列表的意见。然后,您可以调用类CheckedTextView的方法setCheckMarkDrawable
。
下面是一个例子:
文件default_checkbox.xml
内res/drawable
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/checkbox_checked" /> <!-- checked -->
<item android:state_pressed="true"
android:drawable="@drawable/checkbox_checked" /> <!-- pressed -->
<item android:drawable="@drawable/checkbox_default" /> <!-- default -->
</selector>
文件DialogUtil.java
package example.dialog;
import android.app.AlertDialog;
import android.content.Context;
import android.util.Log;
import android.view.*;
import android.widget.*;
import android.widget.AdapterView.OnItemClickListener;
public class DialogUtil {
private DialogUtil() {
}
public static AlertDialog show(Context context) {
String[] items = {"text 1", "text 2", "text 3"};
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Test")
.setPositiveButton("OK", null)
.setAdapter(new CustomAdapter(context, items), null);
AlertDialog dialog = builder.show();
ListView list = dialog.getListView();
list.setItemsCanFocus(false);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
list.setOnItemClickListener(listener);
return dialog;
}
private static OnItemClickListener listener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.i("DialogUtil", "Clicked on " + view);
}
};
private static class CustomAdapter extends ArrayAdapter<String> {
public CustomAdapter(Context context, String[] array) {
super(context, android.R.layout.simple_list_item_multiple_choice, array);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (view instanceof CheckedTextView) {
CheckedTextView checkedView = (CheckedTextView) view;
checkedView.setCheckMarkDrawable(R.drawable.default_checkbox);
}
return view;
}
}
}
注:如果您只是使用AlertDialog
,那么在获取ListView
之前,请先拨打show
,首先,如上所述。
但是,如果您使用DialogFragment
和onCreateDialog
,那么您将获得ListView
,内部为onStart
。
相关问题
- 1. Android的对话框颜色
- 2. Android,我如何在自定义对话框中更改标题的颜色?
- 3. Android的自定义对话框的TextView和背景颜色
- 4. android tabhost自定义颜色
- 5. 自定义Android ListView颜色?
- 6. 设置自定义对话框的动作栏颜色android
- 7. android - 自定义对话框更改视图背景颜色
- 8. 仅允许在颜色对话框中使用自定义颜色
- 9. android:如何使用自定义颜色?
- 10. 自定义颜色在Android的
- 11. 如何自定义android中Toast的背景,背景颜色和文本颜色
- 12. Android ICS对话框标题颜色
- 13. Android对话框分隔线颜色
- 14. 在PropertyGrid中使用自定义颜色选择器对话框
- 15. 的Android Viewpager EdgeEffect自定义颜色
- 16. 如何在c#中自定义颜色?
- 17. 自定义颜色条的颜色MATLAB
- 18. Android中的颜色
- 19. Android自定义CalendarView事件颜色
- 20. Android - 自定义EditText前缀颜色
- 21. Android自定义画笔颜色
- 22. Android自定义ListView文本颜色
- 23. 更改Android中对话框标题周围框架的颜色
- 24. 制作的“自定义颜色对话框”在Firefox
- 25. 在matplotlib上自定义颜色条边框颜色
- 26. 在android中的webview颜色
- 27. 如何在Android中为选定的TextView定义颜色?
- 28. 从颜色对话框中禁用颜色
- 29. 如何改变对话框的颜色
- 30. 如何更改Android对话框背后的颜色
嗨,我仍然无法成功实施解决方案。 – Karthik 2010-09-06 10:45:12
可以请你帮我多一点关于同样的信息。我已经粘贴了一个相同的示例java文件。请帮助我确定我需要做些什么才能让我的复选框颜色更改为其他颜色而不是红色。 – Karthik 2010-09-06 10:46:30
AlertDialog.Builder checkbox_dialog = new AlertDialog.Builder( \t \t \t \t \t DialogCheckBox.this); \t checkbox_dialog.setTitle(“Main Title goes here”); \t \t \t \t \t \t checkbox_dialog。setMultiChoiceItems(myitems,choiceitems, \t \t \t \t \t新DialogInterface.OnMultiChoiceClickListener(){ \t \t \t \t \t \t公共无效的onClick(DialogInterface对话,诠释它, \t \t \t \t \t \t \t \t布尔器isChecked){ \t \t \t \t \t \t \t Log.d(“TAG”,“正在选择的项目”); \t \t \t \t \t \t} \t \t \t \t \t}); – Karthik 2010-09-06 10:48:46