3

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

在德尔福我有第一部分的等价物:

Intent := TJIntent.Create; 
Intent.setAction(TJIntent.JavaClass.ACTION_PICK); 
Intent.setType(TJContactsContract_Contacts.JavaClass.CONTENT_TYPE); 
MainActivity.startActivityForResult(Intent,PICK_CONTACT);

但是在 MainActivity 下查看时,我没有看到“onActivityResult”回调。我看到 JFragment 有一个,但似乎不是在正确的位置获取它,而且我在示例代码、在线或源代码中没有看到任何示例。

4

2 回答 2

2

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

于 2013-09-25T23:54:23.770 回答
1

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

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

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

于 2013-10-13T12:34:11.310 回答