1

zu radiobutton habe ich eine programmatisch erstellt ziehbar auf Optionsfeld für die aktivierten und deaktivierten Zuständen, aber es funktioniert nicht mein Code wie folgt,Set Individuelle Programatically ziehbar für Staaten

-Code ziehen einen rechteckigen setzen wollten Box,

public static GradientDrawable squareView(int backgroundColor, int borderColor) 
{ 
    GradientDrawable shape = new GradientDrawable(); 
    shape.setShape(GradientDrawable.RECTANGLE); 
    //shape.setCornerRadii(new float[] { 8, 8, 8, 8, 0, 0, 0, 0 }); 
    shape.setColor(backgroundColor); 
    shape.setStroke(3, borderColor); 
    return shape; 
} 

-Code programatically set Ansicht erstellt (squareview) wie angegeben zu setzen, nach einer wenig Arbeit aro

public static void setChecked_Selector(Context context,RadioButton view) { 
    try { 
     Drawable pressed=squareView(ContextCompat.getColor(context,R.color.colorBlue),ContextCompat.getColor(context,R.color.colorRed));//new BadgeDrawable(context,colorPressed); 
     Drawable normal=squareView(ContextCompat.getColor(context,R.color.colorwhite),ContextCompat.getColor(context,R.color.colorRed)); 

     StateListDrawable states = new StateListDrawable(); 
     states.addState(new int[]{android.R.attr.state_checked,},pressed); 
     states.addState(new int[]{android.R.attr.state_pressed}, pressed); 

     states.addState(new int[]{android.R.attr.state_checked, android.R.attr.state_enabled}, pressed); 
     states.addState(new int[]{android.R.attr.state_checked, -android.R.attr.state_enabled}, pressed); 

     states.addState(new int[]{}, normal); 
     view.setButtonDrawable(states); 
    } catch (Exception e) { 
    } 
} 
+0

Sie verpasste den Status für unkontrolliert. Ist das nicht? – Rehan

+0

states.addState (neu int [] {android.R.attr.state_checked, -android.R.attr.state_enabled}, gedrückt); – TheReprator

+0

das war für das Deaktivieren der Bedingung – TheReprator

Antwort

1

zu Radiobutton und mir wurde klar, dass das Problem darin besteht, dass das Zeichenfeld keine Größe hat. Ich bin mir nicht sicher, welche Größe sollten Sie geben aber nur das Hinzufügen folgende Zeile macht Ihre RadioButton sichtbar:

shape.setSize(50, 50); 

würde ich vorschlagen, in dimens.xml für sie geeignete Größe zu setzen und diese stattdessen verwenden:

int size = context.getResources().getDimensionPixelSize(R.dimen.radio_button_size); 
shape.setSize(size, size);