我正在编写我的第一个Android应用程序。这是一个测验应用程序,其中显示带有4个答案选项的问题。
我想在单击其中一个按钮后立即显示正确的答案,然后再次单击该按钮时显示下一个问题。
public class ACEInhibitors extends Fragment implements View.OnClickListener {
List<Question> quesList;
int score = 0;
int qid = 0;
Question currentQ;
TextView txtQuestion;
RadioButton rda, rdb, rdc, rdd;
Button checkBtn;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/** Inflating the layout for this fragment **/
View view = inflater.inflate(R.layout.question, null);
DatabaseHelper db = new DatabaseHelper(getActivity());
quesList = db.getAllACEQuestions();
currentQ = quesList.get(qid);
txtQuestion = (TextView) view.findViewById(R.id.textView);
rda = (RadioButton) view.findViewById(R.id.radio0);
rdb = (RadioButton) view.findViewById(R.id.radio1);
rdc = (RadioButton) view.findViewById(R.id.radio2);
rdd = (RadioButton) view.findViewById(R.id.radio3);
rda.setOnClickListener(this);
rdb.setOnClickListener(this);
rdc.setOnClickListener(this);
rdd.setOnClickListener(this);
setQuestionView();
return view;
}
@Override
public void onClick(View view) {
Fragment fragment = null;
switch (view.getId()) {
case R.id.radio0:
// Happening for the first click
// Set colors according to correct answer
rda.setBackgroundColor(Color.RED);
rdb.setBackgroundColor(Color.RED);
rdc.setBackgroundColor(Color.RED);
rdd.setBackgroundColor(Color.RED);
if (currentQ.getANSWER().equals(currentQ.getOPTA())) {
rda.setBackgroundColor(Color.GREEN);
} else if (currentQ.getANSWER().equals(currentQ.getOPTB())) {
rdb.setBackgroundColor(Color.GREEN);
} else if (currentQ.getANSWER().equals(currentQ.getOPTC())) {
rdc.setBackgroundColor(Color.GREEN);
} else if (currentQ.getANSWER().equals(currentQ.getOPTD())) {
rdd.setBackgroundColor(Color.GREEN);
}
// Supposed to happen for the second click
// Display the next question
currentQ = quesList.get(qid);
setQuestionView();
break;
}
}
private void setQuestionView() {
txtQuestion.setText(currentQ.getQUESTION());
rda.setText(currentQ.getOPTA());
rdb.setText(currentQ.getOPTB());
rdc.setText(currentQ.getOPTC());
rdd.setText(currentQ.getOPTD());
qid++;
}
public void replaceFragment(Fragment newFragment) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.commit();
}
}
<小时/> 我是android和java编程的新手,非常感谢任何帮助!
答案 0 :(得分:1)
执行以下步骤以获得所需结果
最初添加一个按钮,可见度消失。
现在使用setQuestionView()
button.setVisibility(View.VISIBLE);
来电
将按键侦听器添加到按钮。
点击按钮,再次点击setQuestionView()
。