2

Androidアクティビティでラジオボタンをクリックした後、ラジオボタングループを無効にする方法は?

これは私のXMLコードです

   <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tPitanje1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="1. Neposredno regulisanje saobracaja na putevima vrse:"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/tPitanje1"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="62dp" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="uniformisani komunalni policajci" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="unoformisani policijski sluzbenici" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="inspektori za drumski saobracaj" />
    </RadioGroup>

</RelativeLayout>

そして、これは私のJavaコードです

   package com.example.autoskola;

import android.app.Activity;
import android.os.Bundle;

public class obs1 extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.obs1);
    }

}

別のラジオボタンをクリックするように変更を無効にする方法に興味がありますか?

4

1 に答える 1

4

私が正しく理解していればRadioGroup、特定のものRadioButtonがクリックされたら無効にする必要があります。を追加して、クリックしOnCheckedChangedListenerた ID が正しい場合は、 を使用してグループを無効にします。もちろん、コードに再有効化を行う他のロジックがない限り、 を再有効化することはできません。RadioButtonsetEnabled(false)RadioGroup

RadioGroup radioGroup = (RadioGroup)findViewById (R.id.radioGroup1);
radioGroup.setOnCheckedChangedListener (new OnCheckedChangedListener(){
public void onCheckedChanged(RadioGroup group, int checkedId) 
{
  if (checkedId == R.id.radio0)
    group.setEnabled(false);
}
});

編集:うまくいかないようですので、チェック時にそれぞれをループするsetEnabled()ようにコードを変更してみてください:RadioButtonradio0

if (checkedId == R.id.radio0){
   for(int i = 0; i < group.getChildCount(); i++){
            ((RadioButton)rg1.getChildAt(i)).setEnabled(false);
        }
}
于 2013-02-23T19:42:31.557 に答える