gpt4 book ai didi

java - 用作 View 标签的整数不起作用

转载 作者:行者123 更新时间:2023-12-01 15:33:20 28 4
gpt4 key购买 nike

直到最近我才使用 View 的标签元素,此后发现了一些很酷的用途。我遇到了一个不寻常的问题,希望有人能回答。这可能比 Android 更通用,但我不确定。它与 Java 如何处理 Integer 类有关。

请参阅这些方法位。事实上,这工作正常。您可以假设这里的 POSITIVE 和 NEGATIVE 是常量。

public void onClick(View v) {

switch(v.getId()){

case R.id.dialog_addrecord_button_sign:

Sign mSign = (Sign) v.getTag();

if(mSign.sign == NEGATIVE){
((Button) v).setText("+");
mSign.sign = POSITIVE;
} else {
((Button) v).setText("-");
mSign.sign = NEGATIVE;
}

break;

}

};


private void initButtons(){
signButton = (Button) findViewById(R.id.dialog_addrecord_button_sign);
signButton.setOnClickListener(this);
signButton.setTag(new Sign());
}

private class Sign {

int sign;

private Sign(){
sign = NEGATIVE;
}

}

不过,我意识到我可以只使用 Integer 类,而不是考虑仅具有单个字段的自定义类。我对此进行了更改,但是该按钮仅切换一次,告诉我关于 Java 如何处理 Integer 类,有些事情我不知道...有人可以告诉我为什么这不起作用吗?

public void onClick(View v) {

switch(v.getId()){

case R.id.dialog_addrecord_button_sign:

Integer sign = (Integer) v.getTag();

if(sign == NEGATIVE){
((Button) v).setText("+");
sign = POSITIVE;
} else {
((Button) v).setText("-");
sign = NEGATIVE;
}

break;

}

};


private void initButtons(){
signButton = (Button) findViewById(R.id.dialog_addrecord_button_sign);
signButton.setOnClickListener(this);
signButton.setTag(new Integer(NEGATIVE));
}

最佳答案

您没有发布 POSITIVE 和 NEGATIVE 的定义位置,但我想您应该检查相等性而不是对象标识。第一个答案this question基本上解释了这一点。

简而言之:使用 sign.equals(NEGATIVE) 代替。

关于java - 用作 View 标签的整数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282432/

28 4 0