2012-08-07 2 views
0

quiz_list.xml: Mon fichier xmlBouton radio est automatiquement sélectionné dans Android

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <TextView 
    android:id="@+id/question" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#43bd00" 
    android:textSize="20sp" 
    android:textStyle="bold" 
    android:paddingTop="4dip" 
    android:paddingBottom="1dip" /> 

    <RadioGroup 
     android:id="@+id/radioGroup" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="Radio Group" 
     > 
    <RadioButton 
     android:id="@+id/option1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    <RadioButton 
     android:id="@+id/option2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    <RadioButton 
     android:id="@+id/option3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    <RadioButton 
     android:id="@+id/option4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    </RadioGroup> 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginLeft="5dp" 
    android:gravity="bottom|center_horizontal" 
    android:orientation="horizontal" > 

<Button 
    android:id="@+id/loadPrevious" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:layout_marginTop="10dp" 
    android:text="Load Previous" 
    android:visibility="invisible" /> 

<Button 
    android:id="@+id/loadNext" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:layout_marginTop="10dp" 
    android:text="Load Next" /> 

    </LinearLayout>  

J'ai une liste de questions et des boutons radio ont les options pour elle. Les problèmes auxquels je suis confronté sont 1. Lorsque je charge la liste suivante, un bouton est déjà sélectionné. 2. Lorsque je charge la liste précédente, un bouton différent est sélectionné à la place de celui que j'ai sélectionné.

Ceci est mon code contenant les questions en tant que json.

String json = "[{\"question\": \"What?\", \"option1\": \"alpha\" , \"option2\": \"beta\" , \"option3\": \"gamma\" , \"option4\": \"alpha\"},{\"question\": \"What is your name ?\", \"option1\": \"Dinesh\" , \"option2\": \"Boopesh\" , \"option3\": \"Srinath\" , \"option4\": \"JK\"},{\"question\": \"What is the capital of India?\", \"option1\": \"Delhi\" , \"option2\": \"Bombay\" , \"option3\": \"Calcutta\" , \"option4\": \"Chennai\"}]"; 

Gson gson = new Gson(); 
JsonParser parser = new JsonParser(); 
    JsonArray array = parser.parse(json).getAsJsonArray(); 

    for(JsonElement obj : array) { 
    Quiz quiz = gson.fromJson(obj,Quiz.class); 
    String question = quiz.getQuestion(); 
    System.out.println("Question: "+question); 
    quizList.add(quiz); 
    } 

J'ajoute les questions en utilisant un customadapter.

Comment puis-je le changer pour le faire fonctionner? Des idées ??? Pls me le faire savoir ...

Merci Nishit.

Répondre

0

essayer cette

RadioGroup radioGroup; 
RadioButton radioButton1; 
RadioButton radioButton2; 
RadioButton radioButton3; 

boolean hack = false; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    radioGroup = (RadioGroup) findViewById(R.id.radioGroup); 
    radioButton1 = (RadioButton) findViewById(R.id.r1); 
    radioButton2 = (RadioButton) findViewById(R.id.r2); 
    radioButton3 = (RadioButton) findViewById(R.id.r3); 

    OnClickListener radioClickListener = new OnClickListener() 
    { 

     public void onClick(View v) 
     { 
      if (v.getId() == radioGroup.getCheckedRadioButtonId() && hack) 
      { 
       radioGroup.clearCheck(); 
      } 
      else 
      { 
       hack = true; 
      } 
     } 
    }; 

    OnCheckedChangeListener radioCheckChangeListener = new OnCheckedChangeListener() 
    { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
     { 
      hack = false; 
     } 
    }; 

    radioButton1.setOnCheckedChangeListener(radioCheckChangeListener); 
    radioButton2.setOnCheckedChangeListener(radioCheckChangeListener); 
    radioButton3.setOnCheckedChangeListener(radioCheckChangeListener); 

    radioButton1.setOnClickListener(radioClickListener); 
    radioButton2.setOnClickListener(radioClickListener); 
    radioButton3.setOnClickListener(radioClickListener); 

} 
+0

@Yash .. Merci pour l'info. – Nishit

Questions connexes