[英]How to check for the correct answer
After importing db to assets, i succesfully read from it, and assign random answers to four of my buttons in my activity: 将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();
}
My correct answer is always c.getString(2) (I have a column in my sqlite db set as ANSWER and it has an ID=2). 我的正确答案总是c.getString(2)(我的sqlite数据库中的列设置为ANSWER,它的ID = 2)。 After that I set onClickListener for each button to realod activity with another question:
之后,我使用另一个问题为每个按钮设置onClickListener到realod活动:
bOdgovor1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
startActivity(getIntent());
}
});
How to check what is correct answer? 如何检查答案是什么?
Cast your View
to a Button
将
View
转换为Button
Button btn = (Button) v;
Then compare the label 然后比较标签
if (btn.getText().equals(c.getString(2)) {
...
}
Updated my answer, please check: 更新了我的答案,请检查:
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 for all buttons: 所有按钮的OnClickListener:
final OnClickListener clickListener = new OnClickListener() {
public void onClick(View v) {
Answer ans = (Answer) v.getTag();
if (ans.isCorrect) {
finish();
startActivity(getIntent());
}
}
};
Button b = (Button)v; 按钮b =(按钮)v; if (b.getText().toString().equals(c.getString(2))){
if(b.getText()。toString()。equals(c.getString(2))){
// answer is correct
}
Not very elegant but that should do it. 不是很优雅,但应该这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.