Question

J'essaie d'ajouter dynamiquement des radiobuttons aux radiogroups mais les boutons n'apparaissent jamais. Le texte le fait cependant. Je suis un débutant, alors faites remarquer tout ce que j'ai mal fait.

En utilisant APKV7 (2.1 je pense).

package test.test2;

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

public class TipsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);


    //create objects
    ScrollView scrollv = new ScrollView(this);
    LinearLayout linlay = new LinearLayout(this);
    linlay.setOrientation(LinearLayout.VERTICAL);
    scrollv.addView(linlay);

    int currentQuestion = 0, questions = 3;
    int [] answers = new int[4];
    answers[0] = 3;
    answers[1] = 3;
    answers[2] = 4;
    answers[3] = 6;
    while (questions > currentQuestion) {           

        RadioGroup rg = new RadioGroup(this);

        TextView tv = new TextView(this);
        tv.setText("Question no. " + currentQuestion);



        int currentAnswer = 0;

        while (currentAnswer > answers[currentQuestion]) {

            RadioButton rb = new RadioButton(this);
            //rb.setText("Answer no. " + currentAnswer);
            rg.addView(rb);
            currentAnswer++;
        }

        linlay.addView(rg);
        linlay.addView(tv);
        currentQuestion++;  
    }
    setContentView(scrollv);
}
}

(NotEnoughContext NoTenoughContext)

Était-ce utile?

La solution

Je pense que vous devriez faire votre boucle pendant ceci:

while (currentAnswer < answers[currentQuestion]) {

        RadioButton rb = new RadioButton(this);
        //rb.setText("Answer no. " + currentAnswer);
        rg.addView(rb);
        currentAnswer++;
    }

Le problème est que CurrentSwer est plus petit que n'importe quelle réponse ...

Autres conseils

Remplacez ce code:

int currentAnswer = 0;

while (currentAnswer > answers[currentQuestion])

Pour ça:

int currentAnswer = 0;

while (currentAnswer < answers[currentQuestion])
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top