5

Androidのアクションバーのナビゲーションとしてドロップダウンリストを実装しようとしています。ドロップダウンリストとアイテムは表示されますが、クリックイベントを取得できません。

http://developer.android.com/guide/topics/ui/actionbar.htmlのチュートリアルに従っていたので、何が欠けているのかわかりません。

これは私のコードです:

public void onCreate(Bundle savedInstanceState) {
        OnNavigationListener mOnNavigationListener;
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.info_layout);
        // getSupportActionBar().setHomeButtonEnabled(true);
         getSupportActionBar().setDisplayShowTitleEnabled(false);

        getSupportActionBar().setNavigationMode(getSupportActionBar().NAVIGATION_MODE_LIST);
        SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.navigation_array, android.R.layout.simple_dropdown_item_1line);
        mOnNavigationListener = new OnNavigationListener() {
            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                switch (itemPosition) {
                case 1:
                    Intent i = new Intent();
                    i.setClass(getApplicationContext(), ZoekAndBoekActivity.class);
                    break;
                case 2:
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    break;
                }
                // return super.onOptionsItemSelected(itemPosition);
                return true;
            }
        };
        getSupportActionBar().setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener);
    }

よろしくお願いします!

4

2 に答える 2

4

クリックイベントが発生しないことを確認しますか?インテントを作成していますが、何もしていません。次のようなものを試してください。

switch (itemPosition) {
    case 1:
        Intent i = new Intent();
        i.setClass(getApplicationContext(), ZoekAndBoekActivity.class);
        startActivity(i);
        break;
    ...
}

または、ログへの書き込みを追加して、次のことを確認します。

public boolean onNavigationItemSelected(int itemPosition, long itemId) {
    Log.d("SomeTag", "Get click event at position: " + itemPosition);
    switch (itemPosition) {
        ...
    }
}

アイテムをクリックすると、logcatの出力で「SomeTag」のメッセージが表示されます。

于 2012-05-24T10:01:49.420 に答える
-1

私はreturnステートメントがスイッチケースの中で偽でなければならないと思います、そしてあなたのケースは括弧を持たなければなりません..それが役立つことを願っています:)))

于 2012-09-24T15:13:09.897 に答える