片段必须附加到SherlockFragmentActivity

时间:2014-11-19 11:44:53

标签: android android-activity android-fragments

好吧,我的代码中有一点问题。

public class MenuFragment extends SherlockListFragment {

正在扩展Sherlock jar,当我运行我正在获取的代码时,它应该允许我在Fragment中使用Action bar

 Caused by: java.lang.IllegalStateException: MenuFragment must be attached to a SherlockFragmentActivity.

所以我改变了我的延伸

public class MainActivity extends ActionBarActivity {

   public class MainActivity extends SherlockFragmentActivity{

运行代码但现在我的操作栏不再可见了

My Fragment Class,

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        return view;
    }
@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.menu_main, menu);
    }
    @Override
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item){
        switch (item.getItemId()) {
            case R.id.shuffle:

                return true;
            case R.id.quit:

                return true;
            default:
                return false;
        }
    }

正在导入

import com.actionbarsherlock.app.SherlockListFragment;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;

主要

public class MainActivity extends ActionBarActivity {
    SongAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

1 个答案:

答案 0 :(得分:0)

嗯而不是你的

  

MainActivity扩展了ActionBarActivity

只需使用

   MainActivity extends SherlockFragmentActivity {
    //you code for fragment goes here
    }

无论你使用什么片段,你都需要使用SherlockFragment,如果是Activity,我们在这里有SherlockActivity。所以其他任何东西都不匹配。


按照以下链接,您将了解如何使用Sherlock Library: https://guides.codepath.com/android/ActionBar-Tabs-with-Fragments

如果有帮助请告诉我。