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)??