0

私はアンドロイドが初めてです..

3 つの ArrayList ハッシュマップがあります。1 つは質問用、2 番目は質問 ID 用、3 番目は回答用です。

JSONオブジェクトで質問と質問IDと回答を取得しました..今、質問と回答を表示したいのですが...必要なのは、3つのArrayListです。QtnsArraylist1(ques1) には 100 個の要素 (100 個の質問) が含まれ、QuestidArraylist には 100 個の ID が含まれ、AnsArraylist2(answ1) には 400 個の要素が含まれます (400 個の回答、質問 4 つのオプションごとに合計 400 個の要素)。これらの値をハッシュマップから取得したい..

QtnsArraylist1(ques1) の最初の質問では、ハッシュマップ キー questionid に基づいて AnsArraylist2(answ1) から最初の 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());
4

1 に答える 1

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"
于 2013-01-25T11:11:40.047 に答える