首页 > 解决方案 > 调用 setEnabled(false) 按钮后仍然可以再按一次

问题描述

单击按钮时,我立即调用setEnabledfalse 但这不会禁用按钮,我必须再次按下才能禁用。

我试图放在setEnabled不同的地方,但结果相同。

chooseLeft.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                chooseLeft.setEnabled(false);
                chooseRight.setEnabled(true);
                docRefPosts.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if (task.isSuccessful()) {
                            if(!chooseRight.isEnabled())
                                docRefPosts.update("votesForRight", FieldValue.increment(-1));
                            docRefPosts.update("votesForLeft", FieldValue.increment(1));
                        }
                    }
                });
            }
        });

        chooseRight.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                chooseRight.setEnabled(false);
                docRefPosts.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if (task.isSuccessful()) {
                            if(!chooseLeft.isEnabled())
                                docRefPosts.update("votesForLeft", FieldValue.increment(-1));
                            docRefPosts.update("votesForRight", FieldValue.increment(1));
                        }
                    }
                });
                chooseLeft.setEnabled(true);
            }
        });

它应该作为一个单选按钮,一旦选择,一次只能选择一个。

标签: javaandroidfirebasegoogle-cloud-firestorebuttonclick

解决方案


setClickable(false)如果您希望取消按钮点击,您也需要使用

chooseLeft.setClickable(false);
chooseLeft.setEnabled(false);
chooseRight.setClickable(true);
chooseRight.setEnabled(true);

推荐阅读