2015-05-04 53 views
-2

有人可以解释为什么这会崩溃吗?我以两种完全相同的方式进行。我的logcat说它的int FN行,所以如果我注释掉int FN行,它会继续。但我需要获得两个标签,而不仅仅是一个。android getTag错误

我把我的ID在我的资源

<resources> 
<item type="id" name="fromNumberTag" /> 
<item type="id" name="contactImageTag"/> 

</resources> 

设置我的标签我的适配器。

// SET OUR DATA FROM OUR CURSOR 
    String phone_number = list.getString(list.getColumnIndex("phoneNumber")); 
    from.setTag(R.id.fromNumberTag,list.getString(list.getColumnIndex("contactId"))); 
    contactimage.setTag(R.id.contactImageTag, phone_number); 

然后我尝试获取标签。 (这是它崩溃AT)

 int cid = Integer.parseInt(listText.getTag(R.id.fromNumberTag).toString()); 
    int fn = Integer.parseInt(listText.getTag(R.id.contactImageTag).toString()); // LOGCAT SAYS THIS LINE IS WHERE ERROR OCCURS 

我logcat的

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference 
     at myapp.myapp.MainActivity$2.onItemClick(MainActivity.java:272) 

回答

1

您可以设定两个不同的对象(fromcontactimage)的标签,但试图从只有一个对象标签( listText)。也许你在错误的对象上设置了一个标签,或者从错误的对象中读取了一个标签?

+0

谢谢你,你的评论让我回头看看我在做什么。我仍然是新的,所以不明白我必须将它们分配给同一个对象,并使用ID来分隔它们。将它们更改为'//设置标记 from.setTag(R.id.fromNumberTag,list.getString(list.getColumnIndex(“contactId”)));来自.setTag(R.id.contactImageTag,phone_number)的 ; '而且工作很好。 – Jayce