Android onNavigationItemSelected从未在Actionbar上调用';斯宾纳纺纱机

Android onNavigationItemSelected从未在Actionbar上调用';斯宾纳纺纱机,android,android-actionbar,android-spinner,android-support-library,Android,Android Actionbar,Android Spinner,Android Support Library,我正在尝试在操作栏Compat中构建一个下拉菜单,如开发人员示例所示: 但我无法将onNavigationItemSelected启动 正在操作栏标题右侧生成操作栏中的微调器下拉项。当我按下它时,我确实看到三角形图标变成蓝色。OnNavigationListener和Sting[]字符串正在OnCreate中运行 我怎样才能让它工作呢 public class Main extends ActionBarActivity { private ActionBar actionBar;

我正在尝试在操作栏Compat中构建一个下拉菜单,如开发人员示例所示:

但我无法将onNavigationItemSelected启动

正在操作栏标题右侧生成操作栏中的微调器下拉项。当我按下它时,我确实看到三角形图标变成蓝色。OnNavigationListener和Sting[]字符串正在OnCreate中运行

我怎样才能让它工作呢

public class Main extends ActionBarActivity {

    private ActionBar actionBar;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

        spinner = new Spinner(this);
        SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this,
                R.array.operating_systems, android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(mSpinnerAdapter);

        ActionBar.OnNavigationListener mOnNavigationListener = new ActionBar.OnNavigationListener() {
            String[] strings = getResources().getStringArray(R.array.operating_systems);

            @Override
            public boolean onNavigationItemSelected(int position, long itemId) {
                ListContentFragment newFragment = new ListContentFragment();
                FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
                ft.replace(R.id.fragment_container, newFragment, strings[position]);
                ft.commit();

                return true;
            }
        };
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_share:
                Toast.makeText(this, "Refresh selected", Toast.LENGTH_SHORT)
                        .show();
                break;
            case R.id.action_settings:
                Toast.makeText(this, "Settings selected", Toast.LENGTH_SHORT)
                        .show();
                break;
            default:
                break;
        }
        return true;
    }

}

看起来您没有调用
ActionBar.setListNavigationCallbacks

从示例中的步骤4开始:

使用setListNavigationCallbacks()设置下拉列表的回调。例如:


是的,就是这样。谢谢
actionBar.setListNavigationCallbacks(mSpinnerAdapter, mNavigationCallback);