比较按钮标签与字符串在android



我正在研究一个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"(Available和Not Available)。我已经从数据库中获得了这些值,并将其设置为项目对象数组列表调用数据。在项目对象中,我声明了字段调用状态,然后将数据库值赋给它。

方法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());或类似的操作。

如果getStatus()返回无字符串

问题可能在行
holder.btn.setTag(data.get(position).getStatus());

你可以试试

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

最新更新