-1

リスト ナビゲーションを追加するために、ActionbarSherlock の例から作業しようとしています。例では、次のようなコードがあります。

@Override
public void onCreate(Bundle savedInstanceState) {
    setTheme(SampleList.THEME); //Used for theme switching in samples
    super.onCreate(savedInstanceState);

    setContentView(R.layout.list_navigation);
    mSelected = (TextView)findViewById(R.id.text);

    mLocations = getResources().getStringArray(R.array.locations);

    Context context = getSupportActionBar().getThemedContext();
    ArrayAdapter<CharSequence> 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);
}

それだけのようです。そのため、ナビゲーションのタイトルをどこに追加できるか混乱しています。また、それは参照します

    ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(
            context, R.array.locations, R.layout.sherlock_spinner_item);

私のコードは R.array.locations を認識せず、構文エラーを出します。しかし、その R.array.locations は例にはありません。私のレイアウトディレクトリに別のファイルを作成する必要がありますか?

ありがとうございました!

4

2 に答える 2

1

しかし、その R.array.locations は例にありません

それは確かです

<string-array name="locations">
    <item>Home</item>
    <item>Email</item>
    <item>Calendar</item>
    <item>Browser</item>
    <item>Clock</item>
</string-array>
于 2013-06-04T16:38:23.783 に答える
1

コンパイル エラーについて:「locations」という配列リソースを作成しましたか?

/res/値/配列

<resources>
    <string-array name="locations">
        <item>Foo</item>
        <item>Bar</item>
        <item>Baz</item>
    </string-array>
</resources>

ドロップダウンに特別な「タイル」を提供することについて: 「リスト ナビゲーション」と呼ばれていますが、実際にアクション バー (ネイティブのものと ActionBarSherlock の両方) に表示されているのはスピナーです。したがって、任意の SpinnerAdapter を指定すると、それが使用されます。

アダプターに慣れていない場合は、このビデオを見ることを強くお勧めします。ListView 用のアダプターと Spinner 用のアダプターの唯一の違いは、ドロップダウン メニューに表示されるビューを作成する getDropDownView() メソッドです (ここで、getView() はスピナー コンテンツ領域に表示されるビューを提供します)。

于 2013-06-04T16:39:55.923 に答える