我是android的新手..
我有三个ArrayList hashmap ..一个是问题,第二个是问题ID,第三个是答案..
我在JSON对象中得到了问题和问题ID和答案。现在我想显示问题和答案......我需要的是, 我有三个ArrayList。 QtnsArraylist1(ques1)包含100个元素(100个问题),QuestidArraylist包含100个id和AnsArraylist2(answers1)包含400个元素(400个答案,每个问题4个选项共400个元素)。我想从hashmap中获取这些值..
对于我在QtnsArraylist1(ques1)中的第一个问题,我必须根据hashmap key questionid从AnsArraylist2(answers1)中获取前4个元素。同样,如果我给出下一个按钮,则显示问题2,3,4 ....这些都应该在onPostExecute()中如何实现?
提前致谢..
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());
答案 0 :(得分:1)
您可以将答案作为HashMap放入Arraylist中。这将使你的所有ArrayList具有相同的大小。
例如,
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("1", "abc");
hm.put("2", "def");
hm.put("3", "ghi");
hm.put("4", "jkl");
ArrayList<HashMap<String, String>> lstAns = new ArrayList<HashMap<String,String>>();
lstAns.add(hm);
要获得答案:
System.out.println("answer1 " + lstAns.get(index).get("1")); // gives "abc"