如何检查正确的答案

时间:2013-02-28 13:44:05

标签: java android android-sqlite

将db导入资产后,我成功地从中读取数据,并为我的活动中的四个按钮分配随机答案:

try{    
        mDbHelper.open();  //open db

        Cursor c = mDbHelper.getTestData();

        question.setText(c.getString(1));

        List<String> labels = new ArrayList<String>();

        labels.add(c.getString(2));
        labels.add(c.getString(3));
        labels.add(c.getString(4));
        labels.add(c.getString(5));

        Collections.shuffle(labels);

        bOdgovor1.setText(labels.get(0));
        bOdgovor2.setText(labels.get(1));
        bOdgovor3.setText(labels.get(2));
        bOdgovor4.setText(labels.get(3));
        }
        finally{    // close db
            mDbHelper.close();
        }

我的正确答案总是c.getString(2)(我的sqlite数据库中的列设置为ANSWER且ID = 2)。之后,我使用另一个问题为每个按钮设置onClickListener到realod活动:

bOdgovor1.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                finish();
                startActivity(getIntent());

            }
        });

如何检查答案是什么?

3 个答案:

答案 0 :(得分:1)

View投放到Button

Button btn = (Button) v;

然后比较标签

if (btn.getText().equals(c.getString(2)) {
  ...
}

答案 1 :(得分:1)

更新了我的答案,请检查:

 private class Answer {
        public Answer(String opt, boolean correct) {
            option = opt;
            isCorrect = correct;
        }

        String option;
        boolean isCorrect;
    }

List<Answer> labels = new ArrayList<Answer>();

    labels.add(new Answer(c.getString(2), true));
    labels.add(new Answer(c.getString(3), false));
    labels.add(new Answer(c.getString(4), false));
    labels.add(new Answer(c.getString(5), false));

    Collections.shuffle(labels);

    bOdgovor1.setText(labels.get(0).option);
    bOdgovor1.setTag(labels.get(0));
    bOdgovor1.setOnClickListener(clickListener);

    bOdgovor2.setText(labels.get(1).option);
    bOdgovor2.setTag(labels.get(1));
    bOdgovor2.setOnClickListener(clickListener);

    bOdgovor3.setText(labels.get(2).option);
    bOdgovor3.setTag(labels.get(2));
    bOdgovor3.setOnClickListener(clickListener);

    bOdgovor4.setText(labels.get(3).option);
    bOdgovor4.setTag(labels.get(3));
    bOdgovor4.setOnClickListener(clickListener);

所有按钮的OnClickListener:

final OnClickListener clickListener = new OnClickListener() {

    public void onClick(View v) {
        Answer ans = (Answer) v.getTag();
        if (ans.isCorrect) {
            finish();
            startActivity(getIntent());
        }
    }
};

答案 2 :(得分:0)

按钮b =(按钮)v;     if(b.getText()。toString()。equals(c.getString(2))){

    // answer is correct
}

不是很优雅,但应该这样做。