使用联系人组加载ListView时出错 - IllegalArgumentException

时间:2016-01-02 21:12:43

标签: android listview simplecursoradapter

我正在为所有联系人群组加载<form name="update_names" method="post"> <input type="hidden" name="team_id" value="<?=$teams->id ?>"> <button onclick="updateNames();return false;" class="btn btn-large btn-primary pull-right">test</button> <script type="text/javascript"> function updateNames() { alert('test'); } </script> 。以下是我为此编写的代码:

来自ListView的代码:

GroupActivity.java

以下是我的观点:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_group);
    Cursor groupCursor = getContentResolver().query(
            ContactsContract.Data.CONTENT_URI,
            new String[]{ContactsContract.Groups._ID,
                    ContactsContract.Groups.TITLE}, null, null, null
    );
    ListView groupListView = (ListView) findViewById(R.id.contactList);
    groupListView.setAdapter(new SimpleCursorAdapter(
            this, R.id.contactList, groupCursor, new String[]{
            ContactsContract.Groups.TITLE
    }, new int[] {R.id.list_item}, 0
    ));

    groupListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Toast.makeText(me, "Notification will be sent soon" , Toast.LENGTH_SHORT);
        }
    });
}

非常简单。但是当我运行应用程序时,我得到的原因如下:

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/contactList"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

我想知道为什么它会将 Caused by: java.lang.IllegalArgumentException: Invalid column title at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137) at android.content.ContentProviderProxy.query(ContentProviderNative.java:413) at android.content.ContentResolver.query(ContentResolver.java:462) at android.content.ContentResolver.query(ContentResolver.java:405) at com.tariq.mysms.GroupActivity.onCreate(GroupActivity.java:26) at android.app.Activity.performCreate(Activity.java:5264) 称为无效列,尽管我也清楚地查询了该列。是因为我在title参数中使用的视图类型?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您使用的是错误的URI - 您使用的是ContactsContract.Data.CONTENT_URI,但应该使用ContactsContract.Groups.CONTENT_URI

您收到的错误是因为ContactsContract.Groups.TITLE不是ContactsContract.Data.CONTENT_URI的有效列