首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复多个点击按钮(数据库测验应用程序)

如何修复多个点击按钮(数据库测验应用程序)
EN

Stack Overflow用户
提问于 2020-06-24 20:28:29
回答 1查看 31关注 0票数 0

我申请了一个关于firebase的问题。在问答部分有一些按钮。但是当有连续的点击时,下一个问题的答案也会被点击。我该如何解决这个问题呢?

这是QuestionActivity.java

代码语言:javascript
运行
复制
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_question);

        question = findViewById(R.id.question);
        qCount = findViewById(R.id.question_num);
        timer = findViewById(R.id.coundown);

        option1 = findViewById(R.id.option1);
        option2 = findViewById(R.id.option2);
        option3 = findViewById(R.id.option3);
        option4 = findViewById(R.id.option4);

        option1.setOnClickListener(this);
        option2.setOnClickListener(this);
        option3.setOnClickListener(this);
        option4.setOnClickListener(this);

这是OnClick方法

代码语言:javascript
运行
复制
@Override
    public void onClick(View view) {
        int selectedOption = 0;


        switch (view.getId()) {
            case R.id.option1:
                selectedOption = 1;
                break;

            case R.id.option2:
                selectedOption = 2;
                break;

            case R.id.option3:
                selectedOption = 3;

                break;
            case R.id.option4:
                selectedOption = 4;

            default:

        }
        //  countdown.cancel();
        checkAnswer(selectedOption, view);


    }

这是Question.java

代码语言:javascript
运行
复制
public class Question {

    String question;
    String optionA;
    String optionB;
    String optionC;
    String optionD;
    int correctAns;


    public Question(String question, String optionA, String optionB, String optionC, String optionD, int correctAns) {
        this.question = question;
        this.optionA = optionA;
        this.optionB = optionB;
        this.optionC = optionC;
        this.optionD = optionD;
        this.correctAns = correctAns;
    }
EN

回答 1

Stack Overflow用户

发布于 2020-06-25 19:37:57

对此有两种解决方案。在onClick类的开头放入

代码语言:javascript
运行
复制
    option1.setOnClickListener(null);
    option2.setOnClickListener(null);
    option3.setOnClickListener(null);
    option4.setOnClickListener(null);

然后,当您想问另一个问题时,重新分配onClickListeners。

或者你可以这样做:

代码语言:javascript
运行
复制
boolean questionBeingAsked = true;
@Override
public void onClick(View view) {
    int selectedOption = 0;


if(questionBeingAsked){

    switch (view.getId()) {
        case R.id.option1:
            selectedOption = 1;
            break;

        case R.id.option2:
            selectedOption = 2;
            break;

        case R.id.option3:
            selectedOption = 3;

            break;
        case R.id.option4:
            selectedOption = 4;

        default:

    }
    //  countdown.cancel();
questionBeingAsked = false;
    checkAnswer(selectedOption, view);
}

}

然后,当你想问一个问题时,只需运行:

代码语言:javascript
运行
复制
questionBeingAsked = true;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62555035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档