识别android中的第二次单击事件

时间:2016-10-19 16:52:16

标签: java android sqlite android-fragments

我正在编写我的第一个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编程的新手,非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

执行以下步骤以获得所需结果

  1. 最初添加一个按钮,可见度消失。

  2. 现在使用setQuestionView()

  3. 替换来自onClick的button.setVisibility(View.VISIBLE);来电
  4. 将按键侦听器添加到按钮。

  5. 点击按钮,再次点击setQuestionView()