5

我的操作栏目前是这样的:

在此处输入图像描述

我希望它是这样的:

在此处输入图像描述

忽略标志旁边的黑线。主要是我想要的是change the color of the text in the IcsSpinner to white

我的活动代码是:

    ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this,
            R.layout.sherlock_spinner_item, cities);
    listAdapter
            .setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
    setContentView(mViewPager);
    final ActionBar bar = getSupportActionBar();
    bar.setCustomView(R.layout.custom_actionbar);
    bar.setIcon(R.drawable.logo);
    bar.setDisplayShowCustomEnabled(true);
    IcsSpinner citySpinner = (IcsSpinner) (bar.getCustomView())
            .findViewById(R.id.city_spinner);
    citySpinner.setAdapter(listAdapter);

我的 custom_actionbar.xml 是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:gravity="right|center_vertical"
    android:orientation="horizontal" >

    <com.actionbarsherlock.internal.widget.IcsSpinner
        android:id="@+id/city_spinner"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>

</RelativeLayout>

我什至希望微调器是just left to the refresh icon. 就像第二张图片一样。

谢谢

4

2 回答 2

15

您需要使用getSupportActionBar().getThemedContext()作为Context给适配器的实例以膨胀布局。这将使用适合在操作栏中填充小部件的任何主题,而不是为您的活动内容设置的主题。

于 2012-08-22T15:10:43.097 回答
1

只是为了补充接受的答案:在尝试使用构造函数创建新的 ArrayAdapter 时遇到一些奇怪的 NullPointerException 后,这对我有用

    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    ArrayAdapter<CharSequence> adapter = 
        ArrayAdapter.createFromResource(actionBar.getThemedContext(),
        R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
    actionBar.setListNavigationCallbacks(adapter, this);
    actionBar.setDisplayShowTitleEnabled(false);
于 2013-02-01T00:29:52.373 回答