在android / Java中我会这样做:
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT);
并获得结果:
@Override public void onActivityResult(int reqCode, int resultCode, Intent data)
在Delphi中,我有相同的第一部分:
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_PICK);
Intent.setType(TJContactsContract_Contacts.JavaClass.CONTENT_TYPE);
MainActivity.startActivityForResult(Intent,PICK_CONTACT);
但是在MainActivity下查看我没有看到“onActivityResult”回调。我看到一个用于JFragment,但似乎没有得到它,我在示例代码,在线或源代码中看不到任何示例。
答案 0 :(得分:2)
目前,您必须对编译的Java类进行子类化,该Java类充当Java端的入口点Activity
,您可以在其中覆盖onActivityResult()
。
这是相当混乱的,需要de-dexing classes.dex来获取当前的NativeActivity
子类,你必须依次进行子类化。您还必须修改清单并将正常部署的classes.dex替换为包含子类的新类。
你可能会觉得这是相当混乱的,这就是为什么最好推迟,直到他们加入一个钩子来获得活动结果,这应该很快就会出现,希望...
答案 1 :(得分:1)
这是一个很好的评论,我不知道它是否像Intent一样工作。