在onNavigationItemSelected上获取微调器的项文本

时间:2012-10-18 12:27:02

标签: java android actionbarsherlock android-spinner

我正在使用ActionBarSherlock来显示一个微调器:

ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

我已成功设法让微调器显示strings.xml中定义的字符串数组中的两个选项:

SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.menu_list,
                  R.layout.sherlock_spinner_dropdown_item);

OnNavigationListener mOnNavigationListener = new OnNavigationListener() {

      @Override
      public boolean onNavigationItemSelected(int position, long itemId) {
       FragmentTransaction ft = getSupportFragmentManager().beginTransaction();  

       if(position==0)
       {
            CalendarFragment frag = new CalendarFragment();
            ft.replace(R.id.main, frag);

       }
       else
       {
            ConverterFragment frag = new ConverterFragment();
            ft.replace(R.id.main, frag);
       }
       ft.commit();


       return true;
      }
    };

bar.setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener);

strings.xml

  <string-array name="menu_list">
        <item>Calendar</item>
        <item>Converter</item>
    </string-array>

问题是我想获取所选数组项的文本,并在所选文本前添加另一个字符串,并在操作栏中显示为标题。

这样的事情:

"SOMESTRING" + Calendar

我不想在字符串数组本身中显示SOMESTRING。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您需要创建自己的适配器类,加载数据并覆盖getView()以使用修改后的文本填充TextView。这与创建自定义适配器以与常规Spinner一起使用没有什么不同。