android - ActionBarSherlock:更改下拉导航标题

标签 android android-actionbar actionbarsherlock

目前我正在为我的项目使用 ActionBarSherlock。我正在使用这段代码创建我的操作栏。

setTheme(R.style.Theme_Sherlock);

Context context = getSupportActionBar().getThemedContext();
list = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item);
list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getSupportActionBar().setListNavigationCallbacks(list, this);

我的问题是。从下拉导航中选择一个选项后,如何在我的 Activity 中保持该状态?

例如,在主屏幕中,我在下拉导航栏下选择“体育”。下拉导航的标题随后变为“体育”。但是,当我更改 Activity 时,下拉导航标题默认返回到列表中的第一项。

最佳答案

我使用的一种方法是创建一个基本 Activity ,每个导航项/Activity 都从中扩展。在基础 Activity 中,我用一个 int 重载了 onResume 以跟踪哪个 Activity 处于 Activity 状态,并在该方法中设置选定的导航项。

例子:

public class BaseActivity extends FragmentActivity {

    //...

    protected void onResume(final int actId) {
        super.onResume();

        //...setup your action bar via getSupportActionBar() calls...
        getSupportActionBar().setSelectedNavigationItem(actId);
}

然后在你的个人 Activity 中:

public class ExampleActivity extends BaseActivity {
    private final int ACT_ID = 1;

    //...

    protected void onResume() {
        super.onResume(ACT_ID);

        //...
    }
}

希望对您有所帮助!

关于android - ActionBarSherlock:更改下拉导航标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9776399/

相关文章:

android - 如果android中有光标,为什么需要模型类?

android - Facebook 登录被禁用,现在它抛出错误

java - 以编程方式更改 ActionBar 选项卡颜色

Android 使用 ShelockFragment 而不是 Fragment

android - ASP.NET MVC 4 Web API 和 session 变量

android - 关于android :textAppearance的问题

Android:splitActionBarWhenNarrow 的问题

android - 从 ShareActionProvider 列表中删除 YourSelf

android - ViewPager + FragmentStatePagerAdapter : ViewPager stops working when screen orientation changes

Sherlock fragment 中的 Android 选项卡和图表引擎中的图表