Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-使用contactscontract的电话表,提取我需要的所有记录,一个我指定的记录。_Java_Android - Fatal编程技术网

Java Android-使用contactscontract的电话表,提取我需要的所有记录,一个我指定的记录。

Java Android-使用contactscontract的电话表,提取我需要的所有记录,一个我指定的记录。,java,android,Java,Android,当我使用这段代码时,它返回电话表中的所有记录,并在我的测试土司显示中显示名称和编号。 任何帮助或指导都会很好 ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); if (cur.getCount() > 0) { while (cu

当我使用这段代码时,它返回电话表中的所有记录,并在我的测试土司显示中显示名称和编号。 任何帮助或指导都会很好

ContentResolver cr = getContentResolver();
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
            null, null, null, null);
    if (cur.getCount() > 0) {
        while (cur.moveToNext()) {
              String id = cur.getString(cur.getColumnIndex    (ContactsContract.Contacts._ID));
              String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
              if (Integer.parseInt(cur.getString(
                    cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                 Cursor pCur = cr.query(
                           ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                           null,
                           ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
                           new String[]{id}, null);
                 while (pCur.moveToNext()) {
                     String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                     Toast.makeText(ZipCode.this, "Name: " + name + ", Phone No: " + phoneNo, Toast.LENGTH_SHORT).show();
                     ArrayList<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);



                 }
                pCur.close();
ContentResolver cr=getContentResolver();
Cursor cur=cr.query(Contacts contract.Contacts.CONTENT\u URI,
空,空,空,空);
如果(cur.getCount()>0){
while(cur.moveToNext()){
字符串id=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.\u id));
字符串名称=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_name));
if(Integer.parseInt(cur.getString(
cur.getColumnIndex(Contacts.Contacts.HAS_PHONE_NUMBER))>0){
游标pCur=cr.query(
ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,
无效的
ContactsContract.CommonDataTypes.Phone.CONTACT_ID+“=?”,
新字符串[]{id},null);
while(pCur.moveToNext()){
String phoneNo=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
Toast.makeText(ZipCode.this,“Name:+Name+”,电话号码:+phoneNo,Toast.LENGTH_SHORT).show();
ArrayList results=data.getStringArrayListExtra(RecognizerIntent.EXTRA_results);
}
pCur.close();

我的想法是建立“id”字符串…但不确定在代码中的何处执行此操作..需要有关保护字符串int或什么的帮助?

您可以更新这行代码:

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
        null, null, null, null);
要接收如下所示的选择:

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, 
    ContactsContract.Contacts._ID + "=?", new String[]{ id }, null);

这将只查询id等于指定id的联系人。这是您想要的吗?

是的,如果您不介意使用字符串代码将我的预定义id放入其中?可能是:private static final int id=“1234”?对不起,noob..?您是指将int转换为字符串的代码吗?一种方法是string.valueOf(yourIntegerVariable)您必须从某处获取id。您不能使用随机id。也许您真正想要的是一个不同的选择,其中您正在查询更具体的东西,如人名?这会起作用吗?光标cur=cr.query(ContactsContract.Contacts.CONTENT_URI,null,ContactsContract.Contacts.DISPLAY_name+“=?”,新字符串[]{name},null)??