11

我试图让我的微调器作为操作栏下拉列表项工作,但我似乎根本无法实现它,通过谷歌搜索后没有很多教程。我认为它与 .setListNavigationCallbacks(); 一行代码,我只是不知道如何从那一行开始工作。

// setup action bar for spinner
    ActionBar bar = getActionBar();
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    bar.setListNavigationCallbacks();

    Spinner spinner = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.tools_array_stopwatch, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);
}

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    switch (arg2) {
    case 0:     
        break;

    case 1:                 
        Intent countdown = new Intent(this, CountdownActivity.class);
        startActivity(countdown);                       
        break;

    default :                       
        break;
    }
}

public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}
4

1 回答 1

18

第 1 步:摆脱您的Spinner.

第 2 步:摆脱你的OnItemSelectedListener.

步骤#3:将您ArrayAdapter作为第一个参数提供给setListNavigationCallbacks().

第 4 步:提供 的实现ActionBar.OnNavigationListener作为 的第二个参数setListNavigationCallbacks()

步骤#5:在onNavigationItemSelected()你的回调方法中ActionBar.OnNavigationListener,根据导航状态的变化做任何你想做的事情(例如,执行一个FragmentTransaction)。

第 6 步:重新设计您的应用程序以不启动基于此导航选择的活动,正如您在上面尝试的那样。从工具栏按钮或选项菜单项启动活动,或使用片段替换现有活动的(部分)UI。操作栏中的列表和选项卡导航不适用于启动活动。

于 2011-12-28T23:53:00.303 回答