0

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

4

3 回答 3

1

首先你应该在清单中声明它的主题

   <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light">   

然后在您想要操作栏的每个活动中,您应该将其扩展到操作栏夏洛克。

public class xxxx extends SherlockActivity {

对于listview,您可以使用actionbar sherlock's one by using this

... extends SherlockListActivity {

如果您要使用操作栏夏洛克的菜单按钮,这就是您的活动的结束

       @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;
        }
    }
于 2013-08-20T10:34:54.683 回答
0

您想在清单中使用它。您是否应用了这个?

android:theme="@style/Theme.Sherlock.Light"

此外,当您扩展 SherlockActivity 时,在 Main Activity 中声明它

最终动作栏 ab = getSupportActionBar();

    // set defaults for logo & home up
    ab.setDisplayHomeAsUpEnabled(false);
    ab.setDisplayUseLogoEnabled(true);
    ab.setDisplayShowTitleEnabled(true);
于 2013-08-20T10:21:37.317 回答
0

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

您需要从 SherlockActivity 扩展。

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

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

于 2013-08-20T10:20:23.210 回答