如何获取hashmap值?

时间:2013-01-25 10:23:27

标签: android arraylist hashmap

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

1 个答案:

答案 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"