使用异步任务加载电话联系人



我正在获得电话联系人并给出问题,但是当我使用异步任务时,应用程序停止工作。

这是我的错误:

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

请参阅此文档以更好地了解联系人提供商。

您可以在此处找到如何根据官方文档检索联系人列表。

最新更新