ActionBarSherlock:更改下拉导航标题

时间:2012-03-19 19:14:15

标签: 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);

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

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

1 个答案:

答案 0 :(得分:7)

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

示例:

public class BaseActivity extends FragmentActivity {

    //...

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

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

然后在您的个人活动中:

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

    //...

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

        //...
    }
}

希望有所帮助!