2015-03-03 2 views
5

J'ai un problème. Mon activité a du styleCouleur de coche à choix unique DialogFragment

<style name="MaterialTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/action_bar_background</item> 
    <item name="colorPrimaryDark">@color/action_bar_background</item> 
    <item name="colorAccent">@color/action_bar_background</item> 
</style> 

J'ai aussi dialogFragment avec sélecteur simple choix.

@Override 
public Dialog onCreateDialog(final Bundle savedInstanceState) { 
    final AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity()); 
    dialog.setTitle(R.string.image_resolution); 
    dialog.setSingleChoiceItems(R.array.quality_labels, getPosition(), this); 
    return dialog.create(); 
} 

Comment changer la couleur des coche-notes (cercles verts) ??? enter image description here

Répondre

1

Vous pouvez référencer un bouton radio personnalisé via l'argument ListAdapter dans AlertDialog.Builder.setSingleChoiceItems(ListAdapter, int, OnClickListener).

La réponse dans ce SO clous post les détails: Android Alert Dialog replace default blue with another color

Pour vous aider à créer vos composants personnalisés Départ: http://android-holo-colors.com

+0

Merci, je vais essayer. – Gark

+0

Pas de problème. Si vous êtes coincé laissez-moi savoir – Pete

6

Vous devez créer un style correspondant pour AlertDialog

<style name="MaterialThemeDialog" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorAccent">@color/action_bar_background</item> 
</style> 

et passe à AlertDialog.Builder constructeur

@Override 
public Dialog onCreateDialog(final Bundle savedInstanceState) { 
    final AlertDialog.Builder dialog = new AlertDialog.Builder(
      getActivity(), 
      R.style.MaterialThemeDialog); 
    dialog.setTitle(R.string.image_resolution); 
    dialog.setSingleChoiceItems(R.array.quality_labels, getPosition(), this); 
    return dialog.create(); 
} 
+0

fonctionne comme un charme, merci l'homme! –

1

1) Créer un nouveau xml, où Checkmark est le style et l'animation de la coche, et la checkMarkTint est la couleur de la case

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:ellipsize="marquee" 
android:gravity="center_vertical" 
android:paddingEnd="16dip" 
android:layout_marginTop="10dp" 
android:paddingStart="16dip" 
android:textSize="14sp" 
android:checkMark=""="?android:attr/listChoiceIndicatorSingle" 
android:checkMarkTint="@color/your_checkmark_color" 
android:textColor="@color/your_text_color" /> 

2) Ensuite, créez un adaptateur au-dessus de votre alerDialog.SetSingleChoiceItems

ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getApplicationContext(),R.layout.your_custom_layout, charSequenceList); 

3) Ajouter l'adaptateur

alerDialog.setSingleChoiceItems(adapter, -1, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        //.. 

      });