如何在Android中将Bundle中的MenuItem传递给对话框片段

如何在Android中将Bundle中的MenuItem传递给对话框片段,android,android-fragments,bundle,Android,Android Fragments,Bundle,我需要传递MenuItem generateProgress=menu.findItem(R.id.generate\u movie)到我的DialogFragment的newInstance,在此实例中,将其与包一起传递到onCreateDialog public void showGifDialog() { DialogFragment newFragment = GenerateGifDialogFragment.newInstance(generateProgress);

我需要传递
MenuItem generateProgress=menu.findItem(R.id.generate\u movie)
到我的DialogFragment的
newInstance
,在此实例中,将其与
包一起传递到
onCreateDialog

public void showGifDialog() {
    DialogFragment newFragment = GenerateGifDialogFragment.newInstance(generateProgress);
    newFragment.show(getFragmentManager(), "generateGif");
}


我如何通过内置Android界面?我应该创建一个类并扩展它吗?还是更好的方法,比如从
getActivity()
直接调用菜单,从Fragment类中查找Item?

我也做了类似的事情,在我的活动中创建一个方法,然后通过
getActivity()
访问它。下面是一个例子:

private boolean mProgressShown;
private MenuItem mSearchItem;
private SearchView mSearchView;
private View mProgressView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Prepare progress layout for usage later
    mProgressView = LayoutInflater.from(this).inflate(R.layout.progress_icon, null);
    ...
}

public void showProgressIcon() {
    if (mSearchItem != null && !mProgressShown) {
        mProgressShown = true;
        mSearchItem.setActionView(mProgressView);
    }
}

public void hideProgressIcon() {
    if (mSearchItem != null && mProgressShown) {
        mProgressShown = false;
        mSearchItem.setActionView(mSearchView);
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    mSearchItem = menu.findItem(R.id.action_search);
    mSearchView = (SearchView) mSearchItem.getActionView();
    ...
}
然后从我的片段中我会称之为:

((MainActivity)getActivity).showProgressIcon();
((MainActivity)getActivity).hideProgressIcon();

为什么要将MenuItem的副本传递给另一个类/片段?我想调用
generateProgress.setActionView(R.layout.actionbar\u Undeterminate\u progress)因此它在实际图标的位置上显示加载图标。
((MainActivity)getActivity).showProgressIcon();
((MainActivity)getActivity).hideProgressIcon();