我正在开发一个基于测验的应用程序。测验包含1个问题和4个多项选择答案。
当用户选择4中的任何一个选项时,如果是正确答案,则应显示“您的答案是对的”,否则应显示“您的答案错误”以及正确的答案。
还有2个按钮(下一个和后面),一个用于下一个问题,另一个用于返回。
有人可以告诉我如何编写回复上一个问题的代码吗?
我做过这样的事情:
private void getShuffledArray()
{
// TODO Auto-generated method stub
for (int i = 1; i <= SIZE; i++)
{
quizIndexList.add(i);
}
Collections.shuffle(quizIndexList);
Log.d("ERR", "List A shuffling" + quizIndexList);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right")) {
displayAnswer();
}
break;
case R.id.button2:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right")) {
displayAnswer();
}
break;
case R.id.button3:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right")) {
displayAnswer();
}
break;
case R.id.button4:
Log.d("ERR", v.getTag().toString());
if (v.getTag().toString().equalsIgnoreCase("right")) {
displayAnswer();
}
break;
case R.id.btn_next:
// lyt_ans.setVisibility(View.GONE);
// lyt_quest.setVisibility(View.VISIBLE);
counter += 1;
if (counter >= SIZE) {
Collections.shuffle(quizIndexList);
counter = 0;
}
getInfoFromDB(quizIndexList.get(counter));
reLoad();
break;
case R.id.btn_bck:
btn_next.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
finish();
}
});
}
}
任何帮助都是值得的,并提前感谢你。
答案 0 :(得分:3)
@Rithesh - 没有得到你的代码而是简单的逻辑如下
你需要什么
1)问题数组
2)回答Arraylist(或说二维数组)类似ArrayList<ArrayList<String>>
的东西
3)每个问题的答案索引(应与问题索引匹配)
4)带有textview(显示问题)的视图,RadioGroup包含4个单选按钮,这样它一次只能选择一个
5)接着两个按钮&amp;以前
6)主要事项将setOnCheckedChangeListener
添加到您的无线电组中只有当用户选择任何答案然后检查选中了哪个单选按钮时才会触发(对于此单选按钮的设置标签,所以假设问题为2&amp; amp) ;收音机检查的位置是3,然后只需检查您的答案阵列中的答案是否&amp;如果它匹配你可以显示吐司&amp;如果它不匹配,那么从Answers arraylist&amp;在吐司或警报中显示它。
7)现在,当您单击下一个按钮时,将文本视图的文本更改为下一个问题&amp;单选按钮的文本到下一组答案&amp;反之亦然,点击上一个按钮
这是逻辑上无法为您提供代码
设置选项的代码
RadioButton option_rdb1 = (RadioButton) findViewById(R.id.option_rdb1);
setOptions(0);
// if you used ArrayList<ArrayList<String>> optionslist
public void setOptions(int index){
if((index-1) <= optionsList.size()){
ArrayList<String> temp = optionslist.get(index);
options_rdb1.setText(temp.get(0).toString();
options_rdb1.setText(temp.get(0).toString();
options_rdb1.setText(temp.get(0).toString();
options_rdb1.setText(temp.get(0).toString();
}
}
只需使用问题索引调用下一个上一个的setOptions。
我使用index-1
作为arraylist start with 0所以它取决于你如何使用索引。
这样你就可以设置第一个选项你也可以在下一个按钮上调用你的功能点击上面的代码行来设置下一个
答案 1 :(得分:1)
点击按钮 btn_next ,输入一个int prev
现在在改变计数器之前..
prev=counter<--- store the counter value..
counter += 1;
if (counter >= SIZE) {
Collections.shuffle(quizIndexList);
counter = 0;}
并在 btn_bck 的onclick上获得这样的热门问题..
getInfoFromDB(quizIndexList.get(prev));
reLoad();
答案 2 :(得分:0)