0

私は Actionbarsherlock を使用ており、 Fragment アクティビティ内にListFragmentDialogFragmentがあります。

    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{

    }
}

addDialog()ここで、静的なCurrentListFragment内からメソッド (新しいダイアログを表示する)を呼び出す必要がありますが、できません。

私が試したこと:

  1. を実行するgetActivity()と、FragmentActivity ではなく、SherlockActivity になります。

  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 に答える