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。2番目の画像のように。

ありがとうございました

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 に答える