java - 将 Drawable 放置在按钮的右侧

标签 java android radio-button drawable oncheckedchanged

<分区>

我正在开发一个生成多项选择题的应用程序。当用户选择一个按钮(单选按钮)时,它会在所选答案旁边放置一个X(如果错误)或V(如果正确)的图像。我创建了包含所有按钮的 RadioGroup 并使用了 OnCheckedChanged Listener。我跟踪并放置打印语句以确保它有效并且确实有效。但是,除了第一次用户按下之外,它根本不显示可绘制图像。

所以换句话说,用户将按下其中一个按钮,将看到反馈(V 或 X),但随后按下不同的按钮并不会看到任何东西,尽管逻辑确实有效(我在 if 中使用了 print 语句).我使用 SetCompoundDrawableWithIntrinsicBounds 并且它会正常工作。有人知道如何解决这个问题吗?

过去 8 个小时我都在为此工作,我感到非常沮丧。

监听器代码:

 @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            //get the index of the correct answer

            int indexAnswer = Integer.parseInt(myQuestion.getAnswer()) - 1;
            for (int i = 0; i < possibleAnswers.length; i++) {
                //if the button at position i was pressed
                if (checkedId == possibleAnswers[i].getId()) {
                    //if its the correct answer
                    if (i == indexAnswer) {
                        Log.i("MyAcitvity", "thats correct");
                        possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.checkmark, 0);
                    }
                    else {
                        Log.i("MyActivity", "thats wrong");
                        possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.wrong, 0);
                    }

                } else {
                    possibleAnswers[i].setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
                }
            }
        }
    });

谢谢你们,祝你们有美好的一天。

最佳答案

我觉得还是先拿到单选按钮再改成这样比较好

View radioButton = group.findViewById(i);
radioButton.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.checkmark, 0);

为了获得更好的答案,请添加所有代码,特别是那些与您的 radio 组相关的代码

关于java - 将 Drawable 放置在按钮的右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341283/

相关文章:

java - Java SE/EE/ME 之间的区别?

Android HTTP登录问题

html - 自定义单选按钮不可见

java - 在Java中打印对象的名称

java - 在另一张图片上添加一些图片

android - 如何在 Android 中更新 SimpleAdapter

android - 如何从 Android 应用程序发布推文

javascript - 如果用户不接受 JS 确认消息,如何检查先前选择的单选按钮?

javascript - 如何使用 Bootstrap 使表格内的单选按钮看起来像按钮?

java - 如何使用 assertJ 递归地比较忽略给定字段的列表?