我正在研究一个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());