2

次のようなスクロールビューを含む単純なレイアウトがあります。

<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);
}

問題。 ビューはうまくスクロールしますが、ラジオボタンがまったく機能していません。私が欠けているものは何ですか?

4

1 に答える 1

2

それはScrollViewか何かではありませんでしたが、Styles.XMLで不適切に定義したカスタムRadioButtonスタイルです。

以下の違いを参照してください。

悪いもの:

<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>

合っている物:

<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>
于 2013-01-09T23:35:05.683 に答える