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

看来您还没有完成第四步

使用 ActionBarSherlock 进行设置

  1. 设置如上。
  2. 签出 ActionBarSherlock 的干净副本并导入到您的 Eclipse 工作区。
  3. 将 ActionBarSherlock 添加为 SlidingMenu 的依赖项
  4. 进入您计划使用的 SlidingActivity,使它们扩展Sherlock___Activity而不是___Activity.

从来没有使用过这个库,我你应该将 MainActivity 更改为:

public class MainActivity extends SherlockSlidingFragmentActivity {

现在您可以使用 SherlockListFragment:

public class BehindMenuFragment extends SherlockListFragment {

并添加 Sherlock 的 ActionBar。

于 2012-11-27T21:22:30.173 回答