【问题标题】:Comparing button Tag with String in android在android中比较按钮标签和字符串
【发布时间】:2015-10-13 17:57:47
【问题描述】:

我正在开发一个 android 项目,它需要从数据库中获取数据作为网格视图(包含多个按钮)。我已经完成了那部分。现在我需要将这些数据与给定的字符串进行比较。 在这里,我将状态从数据库标记到按钮,然后再放入网格视图。

holder.btn.setTag(data.get(position).getStatus());

以下代码显示了我尝试比较这些值的方式。

    String x = "NA";
    String y = holder.btn.getTag().toString();

    if (x.equals(y)) {
        holder.btn.setEnabled(false);
    }

但它不起作用。请帮我解决这个问题。

此外,在我的数据库中有一个列调用状态......它包含诸如 A 和 NA(可用和不可用)之类的值。我已经从数据库中获取了该值并将其设置为项目对象数组列表调用数据。在那个项目对象中,我已经声明了字段调用状态,然后我已经将该数据库值分配给它。

提前致谢。

【问题讨论】:

  • 您是否尝试打印以控制两个字符串?所以你可以比较它们并自己检查错误在哪里......
  • 感谢您的回复。 ...是的,先生,我已经在日志猫中打印了它,并且它工作正常......但是当它进入条件时出现问题......:(
  • 确保两者都是大写以便比较。你有没有试过检查你是否真的可以进入if?如果 if 为真,则打印一些内容,并且您会知道您是在进行条形比较还是比较正常但 UI 没有更新。
  • 是的,先生,两者都是大写的...对不起,先生,我没有得到您所说的第二部分....您的意思是,如果条件为真,请尝试在 log cat 中打印一些东西?对不起,如果我错了。
  • 没错。您必须确定问题出在哪里。如果真的是平等的,或者 GUI 没有被更新

标签: java android string button compare


【解决方案1】:

方法getTag() 返回Object,而不是String。因此,当您检索它时,您必须将其转换为 String。试试这个:

String x = "NA";
String y = (String) holder.btn.getTag();

if (x.equals(y)) {
    holder.btn.setEnabled(false);
}

另外请记住,如果您最初使用字符串以外的内容设置标签,那么在使用getTag() 时必须将其转换为字符串。因此,例如,如果您的行 holder.btn.setTag(data.get(position).getStatus()); 将 int 设置为标记,则您必须执行 String y = (String) Integer.toString(holder.btn.getTag()); 或类似的操作。

【讨论】:

  • 感谢先生的回复。我也已经尝试过了......但它给出了相同的输出
【解决方案2】:

如果 getStatus() 没有返回字符串,问题可能就在行

holder.btn.setTag(data.get(position).getStatus());

你可以试试

holder.btn.setTag(data.get(position).getStatus().toString());

【讨论】:

  • 感谢您的回复..不,先生,它返回一个字符串值..因为我已经尝试了 log cat 中的 getTag() 方法并且它工作正常。它被打印在 Log cat 中
  • 很少见。你试过 compareTo 吗? if (x.compareTo(y) == 0) { ...祝你好运!
猜你喜欢
  • 1970-01-01
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-10
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
相关资源
最近更新 更多