Delphi XE5中的onActivityResult等效?

时间:2013-09-18 22:55:28

标签: android delphi delphi-xe5

在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,但似乎没有得到它,我在示例代码,在线或源代码中看不到任何示例。

2 个答案:

答案 0 :(得分:2)

目前,您必须对编译的Java类进行子类化,该Java类充当Java端的入口点Activity,您可以在其中覆盖onActivityResult()。 这是相当混乱的,需要de-dexing classes.dex来获取当前的NativeActivity子类,你必须依次进行子类化。您还必须修改清单并将正常部署的classes.dex替换为包含子类的新类。 你可能会觉得这是相当混乱的,这就是为什么最好推迟,直到他们加入一个钩子来获得活动结果,这应该很快就会出现,希望...

答案 1 :(得分:1)

这是一个很好的评论,我不知道它是否像Intent一样工作。

http://www.pclviewer.com/android/androidJNI.html

http://www.pclviewer.com/android/XE5.pdf