程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> contact-Android:使用ContentResolver,CONTACT_ID 是列還是行?

contact-Android:使用ContentResolver,CONTACT_ID 是列還是行?

編輯:編程綜合問答
Android:使用ContentResolver,CONTACT_ID 是列還是行?

我用以下代碼實現在屏幕上打印contactIdtelephone number
我在網上找了這段代碼,有些語句還是不明白:

ContentResolver solver = getContentResolver();
            String mess="";

            Cursor cursor = solver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
            while (cursor.moveToNext()){
                String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
                mess = mess + "ID: "+contactId+"\n";

                Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null);
                while (phones.moveToNext()) { 
                     String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER));    
                     mess = mess + phoneNumber + "\n";
                  } 
            }

這個語句我不知道什麼意思:

Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null);

就像Android 開發中第三個參數:

selection : A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI.

所以,按照上面的定義,CONTACT_ID意思是一個行。因為filter which row to return
下面這一行:

String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

CONTACT_ID看上去意思是一個列。
對這個問題我很疑惑,誰可以幫我指點一二呢?謝謝!

最佳回答:


CONTACT_ID是列而不是行,它是表中的一個字段,是一個屬性,它當然是列。你看它是不是指向的是"contact_id"這字符串?這個字符串就是表中的字段名。“filter which row to return”雖然我不懂這鳥語,但我想意思應該和“滿足條件的行將被返回”差不多,所以它並不表示行。第三個參數是SQL中“where”部分的字符串。也就是說

Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null)

的意思是表中滿足CONTACT_ID列中值等於contactId的行都被返回。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved