导致IllegalStateException的SherlockListFragment必须附加到SherlockListActivity

时间:2012-11-27 21:20:59

标签: android actionbarsherlock android-listfragment

我有一个类为Sliding Menu创建一个laterMenu,如下所示:

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插入一个Action Bar到后面的菜单我已经尝试过各种可能无济于事的方法。

将BehindMenuFragment扩展为SherlockListFragment会给我以下错误:

IllegalStateException:BehindMenuFragment必须附加到SherlockFragmentActivity

我不知所措,不知道如何继续解决这个问题请帮助!

1 个答案:

答案 0 :(得分:1)

看来你还没有完成step four

  

使用ActionBarSherlock进行设置

     
      
  1. 如上设置。
  2.   
  3. 签出ActionBarSherlock的干净副本并导入Eclipse工作区。
  4.   
  5. 将ActionBarSherlock添加为SlidingMenu
  6. 的依赖项   
  7. 进入您计划使用的SlidingActivities,使其延伸Sherlock___Activity而不是___Activity
  8.   

从未使用过此库我会猜测您应该将MainActivity更改为:

public class MainActivity extends SherlockSlidingFragmentActivity {

现在您可以使用SherlockListFragment:

public class BehindMenuFragment extends SherlockListFragment {

添加Sherlock的ActionBar。