2013-01-24 34 views
0

我是Android新手。如何從arraylist中檢索答案

我面臨着陣列list.The問題的一個問題是..

我的數組是字符串數組列表。我需要的是什麼?我有兩個數組列表。 QtnsArraylist1包含4個元素(4個問題),AnsArraylist2包含16個元素(16個答案,每個問題4個選項共16個元素)。對於我在QtnsArraylist1中的第一個問題,我必須得到前4個元素從AnsArraylist2。同樣,如果我給下一個按鈕它顯示問題2,3,4 ...。我怎麼能得到這個? 。

請幫我一下..

在此先感謝。

My Code Paste Bin

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

回答

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

這個功能應該返回你想要什麼assumig您名單根據添加的答案中的塊4問題

編輯
這是一個onClick監聽器應該大致做你想要什麼:

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

爲所有的按鈕做到這一點,它應該是好。我還沒有使用單選按鈕,因爲我無法想象的語法,他們使用了我的頭

+0

頂端的聽衆,我應該在我的代碼添加這些值編碼.. –

+0

我無法理解你的代碼...它不應該回到它應該在radiotext視圖 –

+0

dispaly此功能可以去任何地方,這是static修飾符的地步,它只會返回一個ArrayList您需要的答案。我沒有添加代碼來更新UI。如果仍然困惑讓我知道 –