在ActionBar上为微调器指定默认值

时间:2014-03-23 01:18:03

标签: android actionbarsherlock listener menuitem

我在操作栏上有一个菜单项,如

Arrays.xml已

<string-array name="days_of_the_week">
    <item>Sunday</item>
    <item>Monday</item>
    <item>Tuesday</item>
    <item>Wednesday</item>
    <item>Thursday</item>
    <item>Friday</item>
    <item>Saturday</item>
</string-array>

活动:

public class ResultActivity extends SherlockListActivity implements ActionBar.OnNavigationListener{
//More code here
.
.

public void setupActionBar(){
        this.invalidateOptionsMenu();
        this.getSherlock().getActionBar().removeAllTabs();
        ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(this, R.array.days_of_the_week, R.layout.sherlock_spinner_item);
        list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
        this.getSherlock().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        this.getSherlock().getActionBar().setListNavigationCallbacks(list, this);
}

我使用ActionBarSherlock。默认情况下,菜单(星期日)的第一个元素被选中。但我想将当天作为默认值。

1 个答案:

答案 0 :(得分:0)

如果我使用普通的微调器,我可以通过

设置默认值
String day = customCurrentDay();
spinner.setSelection(day);

因为我使用了ActionBarSherlock, ArrayAdapter and NavigationListener

我必须从ArrayAdaptersetSelectedNavigationItem获取我想要的默认索引的位置,并将其作为参数传递。

this.getSherlock().getActionBar().setListNavigationCallbacks(list, this);
this.getSherlock().getActionBar().setSelectedNavigationItem(list.getPosition(day));