0

我正在使用Actionbarsherlock并在我的 Fragment 活动中有一个ListFragment和一个DialogFragment 。

    public class RemainingTasks extends SherlockFragmentActivity{
        public static class CurrentListFragment extends SherlockListFragment{
                 //##need to call addDialog() from within one of the methods here
            }

    public void addDialog() {
          //Create and show the dialog.
          DialogFragment newFragment = MyDialogFragment.newInstance();
          newFragment.show(ft, "dialog");
    }

    public static class MyDialogFragment extends SherlockDialogFragment{

    }
}

现在,我需要从静态CurrentListFragmentaddDialog()中调用该方法(这将显示一个新对话框),但无法调用。

我尝试了什么:

  1. 当我做 agetActivity()时,我最终得到的是 SherlockActivity,而不是 FragmentActivity。

  2. 无法调用getSupportFragmentManager()(错误:对非静态方法的静态引用)

有没有办法做到这一点?另外,我的方法是正确的,还是有更好的方法?

4

1 回答 1

0

固定的。将以下函数移至我的 MainActivity(它扩展了 SherlockFragmentActivity,并充当RemainingTasks片段的宿主)

public void addDialog() {}

public static class MyDialogFragment extends SherlockDialogFragment{

    }

然后我现在用((MainActivity)getActivity()).addDialog()

于 2012-10-24T12:49:06.713 回答