2013-01-09 5 views
1

У меня есть простой макет, содержащий Scroll View, как это:стилизации Android Radiobuttons в RadioGroup не работает

<ScrollView 
     android:id="@+id/inputfields" 
     android:layout_width="fill_parent" 
     android:layout_height="280dp" 
     android:clipChildren="true" 
     android:measureAllChildren="true" 
     android:visibility="gone" > 
</ScrollView> 

Остальная часть макета не имеет значения.

В OnCreate() Я добавляю свои RadioButtons в новую RadioGroup, назначая свои действия с помощью setOnCheckedChangeListener() и добавляя RadioGroup в контейнер ScrollView. См. Выдержку кода ниже.

protected void onCreate(Bundle savedInstanceState) { 
setContentView(R.layout.inputdlg); 
//Populate the list 
ScrollView layout = ScrollView)findViewById(R.id.inputfields); 

Context cont = getContext(); 

final RadioGroup rg = new RadioGroup(cont); 
rg.setScrollContainer(true); 

int id = 0; //For the radiogroup the id does not need to be unique 
for(String s : mStringsList) { 
    RadioButton rb = new RadioButton(cont); 
    rb.setText(s); 
    rb.setId(id++); 
    rb.setGravity(Gravity.CENTER_VERTICAL); 
    rg.addView(rb); 
} 


rg.check(Integer.getInteger(mValue,0)); //0 is the default 
rg.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     if(mRadioListener!=null) 
      mRadioListener.onClick(mEt.getText().toString()); 
     dismiss(); 
    } 
}); 
layout.addView(rg); 
} 

Проблема. Вид прокрутки хорошо, но переключатели не работают вообще. Что мне не хватает?

+0

Вам не хватает '(' где вы объявляете свой 'Scrollview', но я предполагаю, что wa просто ошибка при копировании здесь? – codeMagic

ответ

2

Это не было ScrollView или что-нибудь, но обычай RadioButton Style Я определил inproperly в styles.xml

Чувствуете разницу ниже:

плохой:

<style name="Widget.RadioButtonR" parent="android:Widget"> 
    <item name="android:background">@drawable/btn_radio_label_background</item> 
    <item name="android:button">@drawable/btn_radio_r</item> 
</style> 

Right один:

<style name="Widget.RadioButtonR" parent="@android:style/Widget.CompoundButton.RadioButton"> 
    <item name="android:background">@drawable/btn_radio_label_background</item> 
    <item name="android:button">@drawable/btn_radio_r</item> 
    <item name="android:textColor">@color/myfontcolor</item> 
</style> 
Смежные вопросы