在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中看到了一个,但似乎不适合获取它,而且在示例代码、在线代码或源代码中没有看到任何示例。
最佳答案
当前,您必须对Java Java类的子类进行分类,该Java类充当Java端的入口点Activity
,在这里您可以重写onActivityResult()
。
这相当混乱,需要对classes.dex进行去索引才能得到当前的NativeActivity
子类,而您必须依次获得子类。您还必须修改清单并用包含子类的新清单替换通常部署的classes.dex。
你可能会感觉到这是相当混乱的,这就是为什么最好等到他们加入一个钩子,以获得活动结果,这应该很快,希望…
关于android - 相当于在Delphi XE5中的onActivityResult?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18883649/