Как я могу добавить мой счетчик в ActionBar? - PullRequest
11 голосов
/ 29 декабря 2011

Я пытаюсь заставить свой счетчик работать как элемент выпадающего списка панели действий, но, похоже, я вообще не могу его реализовать, после поиска в Google не так много учебных пособий по этому вопросу.Я думаю, что это как-то связано с .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

}

1 Ответ

18 голосов
/ 29 декабря 2011

Шаг № 1: Избавьтесь от Spinner.

Шаг № 2: Избавьтесь от OnItemSelectedListener.

Шаг # 3: Введите ArrayAdapter в качестве первого параметра для setListNavigationCallbacks().

Шаг # 4: Предоставить реализацию ActionBar.OnNavigationListener в качестве второго параметра для setListNavigationCallbacks().

Шаг # 5: В методе обратного вызова onNavigationItemSelected() в ActionBar.OnNavigationListener делайте все, что хотите, на основании изменения состояния навигации (например, выполните FragmentTransaction).

Шаг № 6. Перепроектируйте свое приложение, чтобы оно не запускалось на основе этого выбора навигации, как вы пытались выше. Либо начните действие с кнопки панели инструментов или пункта меню параметров, либо используйте фрагменты для замены (части) пользовательского интерфейса существующего действия. Навигация по списку и вкладкам на панели действий - , а не для запуска действий.

...