android - 如何从数组列表中获取测验答案?

标签 android text arraylist radio-button

我是安卓新手。我正在做一个关于测验应用程序的项目。我在显示问题和答案时遇到问题。

我的问题是我已将问题和答案存储在数组中。问题和答案正在显示,但不按顺序排列。

我从数据库中获取了问题和答案。它们按顺序排列,但在我的数组列表中,它不按顺序排列。问题和答案不相符。

如何通过匹配正确的顺序来以正确的顺序显示问题。

请帮助我,并提前非常感谢。

代码

      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){
            Collections.sort(ques1, new Comparator<String>() {

                @Override
                public int compare(String lhs, String rhs) {
                    // TODO Auto-generated method stub
                    return 0;
                }

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

        try { 
          int i = 0;
        //  answ1=new ArrayList<String>(new HashSet<String>(answ1));
        JSONObject c = groups.getJSONObject(i);

        String answer = c.getString(TAG_ANSW);

        System.out.println("Checking ::"+answer);
        answ=answer;
        HashMap<String, String> map1 = new HashMap<String, String>();
        answ1.add(answer);
            System.out.println(" Answer array:"+answ1);
            String[] answArr = new String [answ1.size()];
            answArr = answ1.toArray(answArr);
            for(String A: answArr){
                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);
            }

            final TextView txtRadio = (TextView) findViewById(R.id.rdtxt);
            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]));

            btn_practicerg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) 
                {
                    RadioButton checkedRadioButton = (RadioButton) findViewById(checkedId);

                }
            });
             } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
            btn_practicerg.clearCheck();

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

            }
            });
        }

最佳答案

您将问题存储在 HashSet 中,这不会保留顺序。另外,您的比较器始终返回 0。

关于android - 如何从数组列表中获取测验答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14475156/

相关文章:

java - 通用类型 x 通用参数 : Building a "very generic" structure

android - 带有arraylist的 ListView ,android中的简单适配器

java - Android Parcelable - 使用通用数据类型将数据读/写到 Parcel

android - 与 Android Studio 相关的 build.gradle 文件中无法访问的几个任务

android - 底部导航+抽屉+广告

java - 在没有监听器的情况下读取 RealtimeDatabase

linux - 水平合并多个文件中的列

android - 嵌套的 RecyclerView 滚动无法向下滚动 ViewPager2 的 BottomSheetBehavior

javascript - 单击按钮重新加载页面并更改按钮文本

c - 从文件到数组读取和存储整个单词