如何从arraylist中检索答案

问题描述:

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

以及你为什么不试着这么做:

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。如果仍然困惑让我知道 –