Android 尝试打开联系人列表时出现问题?
我在网上看到了很多关于“如何打开Android联系人列表”的帖子,但是这些帖子都已经过时了,有些代码甚至不再有效 编辑: 现在有以下几点:Android 尝试打开联系人列表时出现问题?,android,contacts,android-contacts,Android,Contacts,Android Contacts,我在网上看到了很多关于“如何打开Android联系人列表”的帖子,但是这些帖子都已经过时了,有些代码甚至不再有效 编辑: 现在有以下几点: public class MessagePreview extends Activity { final int PICK_CONTACT = 3; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
public class MessagePreview extends Activity {
final int PICK_CONTACT = 3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button recipientContact = (Button) findViewById(R.id.buttonAddRecipient);
recipientContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
}
});
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c
.getColumnIndexOrThrow(People.NAME));
// TODO Whatever you want to do with the selected contact
// name.
}
}
break;
}
}
}
没有错误,但它确实说
- 字段Contacts.PeopleColumns.NAME为
不赞成
- 联系人类型。不推荐使用联系人类型
- 字段Contacts.PeopleColumns.NAME为 不赞成
- 联系人类型。不推荐使用联系人类型
我必须在那一行之后添加更多代码,但我不知道要添加什么。您正在尝试在另一个方法中定义一个方法。这是行不通的。请将活动的
定义移动到activityresult()
上,使其成为活动的方法
FWIW,选择一个在Android 1.5-4.0.3上工作的联系人
String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER };
Cursor names = getContentResolver().query(contactData , projection, null, null, null);
int indexName = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
int indexNumber = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
names.moveToFirst();
do {
String name = names.getString(indexName);
String number = names.getString(indexNumber);
} while (names.moveToNext());
在onactivityforresults上尝试此代码以便将其移到recipientContact的onClickListener之外?@Cole:是的onActivityResult()
必须在Activity
上实现@Cole:您的错误是不言自明的:您正在将字符串(getColumnName()
的输出)传递给接受int
(getString()
)的方法。另外,Contacts.KIND\u PHONE
不是列的名称。此外,您的查询没有要求返回任何列。