0

次のように、スライディングメニューのbehindMenuを作成するクラスがあります。

public class BehindMenuFragment extends ListFragment {

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    String[] categories = getResources().getStringArray(R.array.categories);
    CategoryAdapter adapter = new CategoryAdapter(getActivity());
    int cats = categories.length;
    for (int i = 0; i < cats; i++) {
        adapter.add(new CategoryItem(categories[i], getIcon(categories[i])));
        }
    setListAdapter(adapter);
}

次のコードを使用して、別のアクティビティMainActivityから呼び出されます。

getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.menu_frame, new BehindMenuFragment ())
    .commit();

上記のコードは問題なく動作します。ActionBarSherlockを使用してアクションバーを背後のメニューに挿入したいのですが、無駄にできる限りの方法で試しました。

BehindMenuFragmentをSherlockListFragmentとして拡張すると、次のエラーが発生します。

IllegalStateException:BehindMenuFragmentをSherlockFragmentActivityにアタッチする必要があります

途方に暮れていて、この問題を進める方法がわからないので、助けてください!

4

1 に答える 1

1

ステップ4を実行していないようです:

ActionBarSherlockを使用したセットアップ

  1. 上記のように設定します。
  2. ActionBarSherlockのクリーンコピーをチェックアウトし、Eclipseワークスペースにインポートします。
  3. SlidingMenuへの依存関係としてActionBarSherlockを追加します
  4. 使用する予定のSlidingActivitiesに移動し、のSherlock___Activity代わりにそれらを拡張し___Activityます。

このライブラリを使用したことがない場合は、MainActivityを次のように変更する必要があると思います。

public class MainActivity extends SherlockSlidingFragmentActivity {

これで、SherlockListFragmentを使用できます。

public class BehindMenuFragment extends SherlockListFragment {

そして、SherlockのActionBarを追加します。

于 2012-11-27T21:22:30.173 に答える