0
getSupportActionBar().setDisplayShowTitleEnabled(false);
        getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.actionOptions, android.R.layout.simple_dropdown_item_1line);
        Calendar c = Calendar.getInstance();
        int hours = c.get(Calendar.HOUR_OF_DAY);
        if(hours<6)
        {
            getSupportActionBar().setSelectedNavigationItem(1);
            supportInvalidateOptionsMenu();
        }
        else if(hours>=21)
        {
            getSupportActionBar().setSelectedNavigationItem(1);
            supportInvalidateOptionsMenu();
        }
        else
        {
            getSupportActionBar().setSelectedNavigationItem(0);
            supportInvalidateOptionsMenu();
        }

        OnNavigationListener mOnNavigationListener = new OnNavigationListener() {

            @Override
            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                // TODO Auto-generated method stub
                switch(itemPosition){
                case 0:
                    isMode = "dMode";
                    break;
                case 1:
                    isMode = "nMode";
                    break;
                default:
                }
                return false;
            }
        };

getSupportActionBar().setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener);

次のコードでは、時刻に応じてアクション バーにドロップダウンを設定しようとしています。午後 9 時から午後 6 時の間であればモード A が設定され、それ以外の場合はモード B が設定されます。デフォルトの定義によると、モード A はインデックス位置 1 に、モード B は 2 に設定されています。しかし、コードは機能していないようです。助けてください。そして、. なしでコードを試してみましたsupportInvalidateOptionsMenu()。まったく機能しません。

4

1 に答える 1