Android 如何从主屏幕呼叫联系人选择器?
我正在尝试创建一个定制的Android主屏幕。我使用了示例主屏幕应用程序,并对其进行了调整。我想做的是,从主屏幕中的按钮打开联系人选择器,并使用用户在下一个操作中选择的联系人。我无意中发现了本书中提到的同一个问题 如何解决这个问题,使主屏幕保持“singleInstance”,并且我还可以调用startActivityForResult()Android 如何从主屏幕呼叫联系人选择器?,android,homescreen,contactpicker,Android,Homescreen,Contactpicker,我正在尝试创建一个定制的Android主屏幕。我使用了示例主屏幕应用程序,并对其进行了调整。我想做的是,从主屏幕中的按钮打开联系人选择器,并使用用户在下一个操作中选择的联系人。我无意中发现了本书中提到的同一个问题 如何解决这个问题,使主屏幕保持“singleInstance”,并且我还可以调用startActivityForResult() 联系人选取器是一项活动,我可以将其子类化(我已经搜索过,但找不到任何子类),以便使用David Wasser在上述问题中提出的解决方案吗?毕竟,我找到了一个
联系人选取器是一项活动,我可以将其子类化(我已经搜索过,但找不到任何子类),以便使用David Wasser在上述问题中提出的解决方案吗?毕竟,我找到了一个优雅的解决方案: “我的主要活动”启动一个中间的、不可见的活动,该活动具有
android:theme=“@android:style/theme.NoDisplay”
此中间活动在其onCreate
Intent phoneContactIntent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
// Show user only contacts w/ phone numbers
phoneContactIntent.setType(Phone.CONTENT_TYPE);
startActivityForResult(phoneContactIntent, CHOOSE_CONTACT_TO_CALL);
然后,在onActivityResult中,它使用联系人选择器返回的数据为主应用程序创建一个新的意图
switch (requestCode) {
case (CHOOSE_CONTACT_TO_CALL):
if (resultCode == Activity.RESULT_OK) {
Intent resultIntent = new Intent(this, Home.class);
resultIntent.putExtras(data);
Uri contactData = data.getData();
if (contactData != null)
{
resultIntent.setData(contactData);
}
startActivity(resultIntent);
}
}
finish();
在我的家庭课程中,在onCreate
中,我调用getIntent()
并检查启动主活动的intent中的数据