Cómo personalizar el color del color de CheckMark en android en un cuadro de diálogo. Actualmente, de forma predeterminada, el color de la marca de verificación es verde por defecto. Me gustaría personalizarlo a un color diferente de elecciónCómo personalizar el color del color de CheckMark en Android en un cuadro de diálogo. : android
Respuesta
Tiene que anular los estilos del widget de casilla de verificación con recursos dibujables modificados. Aquí es buena guía para comenzar con estilos/temas http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/
Si nos fijamos en la styles.xml from android system, se verá que el estilo de casilla se define como sigue:
<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>
Y Se busca los recursos de la sistema, verá que btn_check es un selector dibujable con 2 estados (activado/desactivado) con el cheque de color verde o no.
Así que si usted quiere tener su propio color embutición, aquí es lo que debe hacer:
- crear un styles.xml
- 2 definen los dibujables a utilizar
- crear el archivo XML apoyar el selector
puede encontrar la documentación completa bastante detallado en the android google doc.
para cambiar la casilla de verificación dentro de un cuadro de diálogo de selección múltiple, se necesita un adaptador personalizado para su diálogo, a fin de tener acceso a los puntos de vista de la lista. Luego, llame al método setCheckMarkDrawable
de la clase CheckedTextView.
Aquí se muestra un ejemplo:
Archivo default_checkbox.xml
dentro 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>
Archivo 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;
}
}
}
NOTA: Si simplemente usa AlertDialog
, antes de obtener el ListView
, llame al show
, en primer lugar, como se explicó anteriormente.
Sin embargo, si se utiliza DialogFragment
y onCreateDialog
, se obtiene la ListView
, dentro onStart
.
- 1. ¿Cómo cambiar el color predeterminado del cuadro de diálogo DatePicker y TimePicker en Android?
- 2. Cómo cambiar el color de fondo del cuadro de diálogo de alerta predeterminado de Android
- 3. Cómo cambiar el color detrás del cuadro de diálogo de Android
- 4. Android: ¿Cómo cambiar el color del texto de ProgressDialog?
- 5. Android: DialogPreference color/style?
- 6. Cambiar el color del subrayado en android
- 7. Qt, cuadro de diálogo selector de color?
- 8. Mezcla de color en Android
- 9. cómo obtener el color de fondo del botón en Android?
- 10. Cómo pintar un degradado de color en Android en un lienzo con el cambio de color?
- 11. Tab Android Color del texto
- 12. Cambiar el color del texto resaltado en Android
- 13. cómo cambiar el color de foco de EditText en Android
- 14. ¿Hay un cuadro de diálogo de color para WPF?
- 15. Diseño del título del cuadro de diálogo anterior en Android
- 16. cambiar el color de fondo del diseño en Android
- 17. ¿Cómo establecer el color de un TextView en Android?
- 18. Cuadro de diálogo de alerta en android
- 19. Personalizar el cuadro de diálogo onbeforeunload
- 20. Cambiando el color del desplazamiento en scrollview en android
- 21. Establecer el color del lapso de TextView en Android
- 22. Constantes de color del sistema Android
- 23. ¿Cómo personalizar el color de visualización del encabezado?
- 24. ¿Cómo cambiar el color de fondo del diálogo mediante programación?
- 25. Android ListView Selector de color
- 26. Android - Custom AlertDialog Color de fondo
- 27. Animación de color de forma en Android
- 28. Android - Cambiar fondo de título de cuadro de diálogo personalizado
- 29. Cambiar el color del divisor en Android PreferenceActivity
- 30. ¿Cómo cambiar el color de fondo del cuadro de diálogo de la interfaz de usuario jQuery?
Hola, todavía no pude tener éxito en la implementación de la solución. – Karthik
¿Puedes ayudarme con un poco más de información sobre lo mismo? He pegado un archivo java de muestra para el mismo. Por favor, ayúdenme en lo que necesito hacer exactamente para que mi casilla de verificación cambie de color a otro color en lugar de rojo. – Karthik
AlertDialog.Builder checkbox_dialog = new AlertDialog.Builder ( \t \t \t \t \t DialogCheckBox.this); \t checkbox_dialog.setTitle ("El título principal va aquí"); \t \t \t \t \t \t checkbox_dialog.setMultiChoiceItems (myitems, choiceitems, \t \t \t \t \t nueva DialogInterface.OnMultiChoiceClickListener() { onClick (de diálogo DialogInterface public void \t \t \t \t \t \t, int, que, \t \t \t \t \t \t \t \t booleano isChecked) { \t \t \t \t \t \t \t Log.d ("TAG", "elementos seleccionados"); \t \t \t \t \t \t} \t \t \t \t \t}); – Karthik