如何比较按钮标签值



我正在开发一个测验应用程序,其中我有3个按钮。我比较了前Ans_1.getTag() == "1"按钮的每个按钮标签值,但它总是给我false。

这是我的代码

我在这里设置标签值

            Ans_1.setTag(is_right_choice[0].toString());
            Ans_2.setTag(is_right_choice[1].toString());
            Ans_3.setTag(is_right_choice[2].toString()); 

is_right_choice[0].toString()这个值来自json响应但是当我比较它

     if(Ans_1.getTag() == "1")
            {
                Ans_2.setBackgroundColor(Color.GREEN);
                Ans_1.setEnabled(false);
                Ans_2.setEnabled(false);
                Ans_3.setEnabled(false);
                points.setText("+1 Punkt");
                is_button_click = true;
                isCancelled = true;
            }
            else
            {
                if(Ans_2.getTag() == "1")
                {
                    Ans_1.setBackgroundColor(Color.GREEN);
                    Ans_2.setBackgroundColor(Color.YELLOW);
                    Ans_1.setEnabled(false);
                    Ans_2.setEnabled(false);
                    Ans_3.setEnabled(false);
                    points.setText("0 Punkt");
                    is_button_click = true;
                    isCancelled = true;
                }
                if(Ans_3.getTag() == "1")
                {
                    Ans_3.setBackgroundColor(Color.GREEN);
                    Ans_2.setBackgroundColor(Color.YELLOW);
                    Ans_1.setEnabled(false);
                    Ans_2.setEnabled(false);
                    Ans_3.setEnabled(false);
                    points.setText("0 Punkt");
                    is_button_click = true;
                    isCancelled = true;
                }
            }

在任何if块中都不比较。谁能告诉我我哪里做错了?

thanks in advance

你应该使用。equals方法来比较两个对象

if(obj1.equals(obj2)) {
..
}

在您的例子中(看到标记包含一个字符串),您应该使用:

if(Ans_1.getTag().toString().equals("1")) {
..
}

或更简单的…

if(Ans_1.getTag().equals("1")) {
..
}

您必须重写equals函数(以及其他函数)才能在自定义类中使用它。

equals方法比较对象。

==二进制运算符比较mem地址。

所以改变这个

if(Ans_1.getTag() == "1") 

if(Ans_1.getTag().toString().equals("1"))

Ans_2Ans_3按钮相同

最新更新