我正在获得电话联系人并给出问题,但是当我使用异步任务时,应用程序停止工作。
这是我的错误:
java.lang.IllegalArgumentException: 不能有 viewTypeCount <1
我在onCreate方法中调用异步任务,如下所示:
new displayContacts().execute();
我做错了什么?
我想getViewTypeCount返回此适配器可以返回的不同类型的视图的数量。 视图类型应该只返回 1。
public int getItemViewType(int position) {
return 0;
}
public int getViewTypeCount() {
return 1;
}
您遇到的问题与您的Adapter
有关,而不是您的AsyncTask
..
如果覆盖适配器中的getViewTypeCount()
,则应确保返回大于 1。此方法用于了解列表应具有多少种视图类型。在您的情况下,我想它将是一种类型,而不是您使用的是最终可能返回 0 的getCount()
public int getViewTypeCount() {
// if you have more than 1 view type than make sure it's > 1
return 1;
}
您还在查询包含电话号码ContactsContract.CommonDataKinds.Phone
..因此,如果用户在该表中有3个条目,您将列出将包含3倍相同的名称..您应该查询ContactsContract.Contacts
请参阅此文档以更好地了解联系人提供商。
您可以在此处找到如何根据官方文档检索联系人列表。