Hut*_*eri 5 android fragment android-viewpager
我有问题onActivityResult()没有被传递给片段,我认为主要活动有问题,将onActivityResult()传递给片段,我得到了这个警告,"活动结果片段索引超出范围",因此,我无法重新加载嵌套的片段.
我的应用程序使用导航抽屉,我在一个片段中查看寻呼机作为菜单之一,因此视图寻呼机重新加载嵌套片段,我想重新加载视图寻呼机,以便视图寻呼机内的片段获取最新更新.我从viewpager中的片段调用startActivityForResult
Intent i = new Intent(getActivity(), AddEditRecurring.class);
i.putExtra("isEditMode", true);
i.putExtra("itemID", itemID);
i.putExtra("name", name);
i.putExtra("type", type);
i.putExtra("catId", categoryID);
i.putExtra("repeat", startOn);
i.putExtra("price", String.valueOf(amount));
startActivityForResult(i, 1);
Run Code Online (Sandbox Code Playgroud)
并调用AddEditRecurring活动,在用户完成此活动后,活动将关闭并发送活动结果以重新加载viewpager.但在这种情况下,活动无法将onActivityResult传递给片段,我无法重新加载视图寻呼机.
编辑:
我浏览了android支持库,得到了这个,
/**
* Dispatch incoming result to the correct fragment.
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
mFragments.noteStateNotSaved();
int index = requestCode>>16;
if (index != 0) {
index--;
if (mFragments.mActive == null || index < 0 || index >= mFragments.mActive.size()) {
Log.w(TAG, "Activity result fragment index out of range: 0x"
+ Integer.toHexString(requestCode));
return;
}
Fragment frag = mFragments.mActive.get(index);
if (frag == null) {
Log.w(TAG, "Activity result no fragment exists for index: 0x"
+ Integer.toHexString(requestCode));
} else {
frag.onActivityResult(requestCode&0xffff, resultCode, data);
}
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
Run Code Online (Sandbox Code Playgroud)
谁知道这是什么意思?
| 归档时间: |
|
| 查看次数: |
2648 次 |
| 最近记录: |