编辑:将Fragment更改为Partial,当我写这篇文章时,我对Fragment对象一无所知.
我有一个部分包含一个按钮来调出联系人列表.这样做需要打电话
startActivityForResult( new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI), MY_REQUEST_CODE );
Run Code Online (Sandbox Code Playgroud)
并在我的Activity中处理结果,如:
public void onActivityResult( int requestCode, int resultCode, Intent data ) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case MY_REQUEST_CODE: {
Address address = contact_address( data );
if (address != null) {
// do something with address
}
} break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据我在Activity布局中包含部分的方式,在其他部分中可能有几层深度,并且可能有多个部分实例.
我想避免将MY_REQUEST_CODE的ID一直传播到调用活动的部分 - 或其任何变体,比如将onClickListener分配给按钮 - 我不希望顶级UI关注部分如何完全是建造的.
有没有一种标准的方法来实现这一目标?在我看来,如果可以使onActivityResult接受Uri而不是int代码,则可以避免传播.我希望我在这里遗漏了一些明显的东西......
android ×1