Android ActionBar Sherlock没有出现

时间:2013-08-20 10:10:22

标签: android

我已经this教程ActionBarSherlock。问题是,当我已经安装Sherlock时,在2.2版本中,ActionBar仍然没有显示出来。然后我尝试从Java文件实现ActionBar,当我启动我的应用程序时它抛出错误,因为我需要至少3.0版本。主要活动是ListActivity,所以我的问题是我如何实施SherlockActivityListAcivty我是否需要这样做?

3 个答案:

答案 0 :(得分:1)

首先,您应该在清单

中声明其主题
   <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light">   

然后在你想要动作栏的每个活动中,你应该将它扩展到动作栏sherlock。

public class xxxx extends SherlockActivity {

对于listview,你可以使用actionbar sherlock来使用这个

... extends SherlockListActivity {

如果您要使用actionbar sherlock的菜单按钮,这就是您的活力结束

       @Override
        public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {

            MenuInflater inflater = getSupportMenuInflater();
            inflater.inflate(R.menu.MenuOfButtons, menu);
            return super.onCreateOptionsMenu(menu);
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            super.onOptionsItemSelected(item);

            switch (item.getItemId()) {
            case R.id.idOfButton:
//action done
                break;
            }
            return true;
        }
    }

答案 1 :(得分:0)

查看此视频教程: http://www.youtube.com/watch?v=1S9f7GQlWDg

您需要从SherlockActivity扩展。

从ListActivity等其他类扩展时,恐怕无法使用sherlock操作栏。可能是创建ListActivity和SherlockActivity的继承heiratchy的一些解决方法,但它会非常复杂。

如果您无法避免使用ListActivity,您可以在清单中增加API级别(我认为12)并使用android API提供的操作栏。

答案 2 :(得分:0)

你想在清单中使用它。你是否应用了它?

android:theme =“@ style / Theme.Sherlock.Light”

此外,当你扩展SherlockActivity

时,在Main Activity中声明这个

final ActionBar ab = getSupportActionBar();

    // set defaults for logo & home up
    ab.setDisplayHomeAsUpEnabled(false);
    ab.setDisplayUseLogoEnabled(true);
    ab.setDisplayShowTitleEnabled(true);