0

私はAndroidを初めて使用します。

配列リストの問題に直面しています。問題は..

私の配列は文字列配列リストです。私が必要なのは何ですか?2つの配列リストがあります。QtnsArraylist1には4..要素(4 ..質問)が含まれ、AnsArraylist2には16 ..要素(16 ..回答、各質問に対して4つのオプションが合計16 ..要素)が含まれます。QtnsArraylist1の最初の質問では、最初の4つの要素を取得する必要があります。 AnsArraylist2から。同様に、次のボタンを指定すると、質問2、3、4に表示されます。これを取得するにはどうすればよいですか。。

助けてください。

前もって感謝します。

私のコードペーストビン

protected void onPostExecute(String file_url) {
pDialog.dismiss();       
ques1=new ArrayList<String>(new HashSet<String>(ques1));
System.out.println(" Question array:"+ques1);
String[] quesArr = new String [ques1.size()];
quesArr = ques1.toArray(quesArr);
for(String s: quesArr){
System.out.println("All Array Questions:"+s);
final TextView txtque = (TextView) findViewById(R.id.que_txt);
final String text=ques1.get(j).toString();
System.out.println("Array:"+text);
txtque.setText(text);
  }            

answ1=new ArrayList<String>(new ArrayList<String>(answ1));
System.out.println(" Answer array:"+answ1);
String[] answArr = new String [answ1.size()];
answArr = answ1.toArray(answArr);
for(String A: answArr){
// final Object getName0 = answArr[0].toString();
// final Object getName1 = answArr[1].toString();
// final Object getName2 = answArr[2].toString();
// final Object getName3 = answArr[3].toString();
Collections.sort(answ1, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
  }
});
System.out.println("All Array Answers:"+A);    
}

btn_practicerg =(RadioGroup) findViewById(R.id.rdgroup);
btn_practice1 = (RadioButton) findViewById(R.id.RB1);
btn_practice1.setText(String.valueOf(answArr[0]));
btn_practice2 = (RadioButton) findViewById(R.id.RB2);
btn_practice2.setText(String.valueOf(answArr[1]));
btn_practice3 = (RadioButton) findViewById(R.id.RB3);
btn_practice3.setText(String.valueOf(answArr[2]));
btn_practice4 = (RadioButton) findViewById(R.id.RB4);
btn_practice4.setText(String.valueOf(answArr[3]));

Button nextBtn = (Button) findViewById(R.id.nxt_btn);
nextBtn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
j++;
TextView txtque = (TextView) findViewById(R.id.que_txt);
txtque.setText(ques1.get(j).toString());                               
k++;
btn_practice1.setText(answ1.get(k).toString());
k++;
btn_practice2.setText(answ1.get(k).toString());
k++;
btn_practice3.setText(answ1.get(k).toString());
k++;
btn_practice4.setText(answ1.get(k).toString());
4

1 に答える 1

1

次のようなことを試してみませんか。

public static List<String> getAnswers(int questionNumber)
{
    int i = questionNumber;
    List answers = new ArrayList<String>();
    String question = ques1[i];

    for (i; i< i+ 4; i++)
    {
        answers.add(AnsArraylist2[i];
    }
    return answers;
}

この関数は、リストが質問に従って4つのブロックで回答を追加したと仮定して、必要なものを返す必要があります

編集
これは onClickListener であり、おおまかに必要なことを行う必要があります。

class sortClickListener implements onClickListener
{
    @Override
    public void onClick(View v) 
    {
        List<String> answers = getAnswers(v.getTag());

        //I'm assuming you're going to display these answers in textViews
        //Also assuming you've put these text views into a list
        for (int i = 0; i < 4; i ++)
        {
            textViewList[i].setText(answers.get[i]);
        }
    }
}

このリスナーを使用して、コードを機能させるために次のことを行う必要があります。

btn_practice1.setTag(the_number_in_the_array_you_need);
btn_practice1.setOnClickListener(new sortOnClickListner());

すべてのボタンに対してこれを行うと、問題ありません。頭のてっぺんから使用するリスナーの構文を考えられないため、ラジオボタンを使用していません

于 2013-01-24T11:34:19.083 に答える