Задать вопрос
@Erimaru
Студент-программист

Как реализовать открытие нового Activity из Navigation Drawer?

Здравствуйте. Как реализовать открытие нового Activity из Navigation Drawer? Я нашел код красивого бокового меню, и стал его изучать, но не могу понять, как реализовать в нем переход на новые активности для разных кнопок в нём. В шаблоне только Toast-ы на нажатие.
Вот сам код :
public class MainActivity extends ActionBarActivity {

    private Drawer.Result drawerResult = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Инициализируем Toolbar
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        // Инициализируем Navigation Drawer
        drawerResult = new Drawer()
                .withActivity(this)
                .withToolbar(toolbar)
                .withActionBarDrawerToggle(true)
                .withHeader(R.layout.drawer_header)
                .addDrawerItems(
                        new PrimaryDrawerItem().withName(R.string.drawer_item_home).withIcon(FontAwesome.Icon.faw_home),
                        new PrimaryDrawerItem().withName(R.string.drawer_item_catalog).withIcon(FontAwesome.Icon.faw_gamepad),
                        new SectionDrawerItem().withName(R.string.drawer_item_setting),
                        new SecondaryDrawerItem().withName(R.string.drawer_item_help).withIcon(FontAwesome.Icon.faw_cog),
                        new SecondaryDrawerItem().withName(R.string.drawer_item_settings).withIcon(FontAwesome.Icon.faw_question)

                )
              
                })
               // Обработка клика
               .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
          @Override
                     public void onItemClick(AdapterView<?> parent, View view, int position, long id, IDrawerItem drawerItem) {
                        if (drawerItem instanceof Nameable) {
                            Toast.makeText(MainActivity.this, MainActivity.this.getString(((Nameable) drawerItem).getNameRes()), Toast.LENGTH_SHORT).show();
                        }
                        if (drawerItem instanceof Badgeable) {
                            Badgeable badgeable = (Badgeable) drawerItem;
                            if (badgeable.getBadge() != null) {
                                // учтите, не делайте так, если ваш бейдж содержит символ "+"
                                try {
                                    int badge = Integer.valueOf(badgeable.getBadge());
                                    if (badge > 0) {
                                        drawerResult.updateBadge(String.valueOf(badge - 1), position);
                                    }
                                } catch (Exception e) {
                                    Log.d("test", "Не нажимайте на бейдж, содержащий плюс! :)");
                                }
                            }
                        }
                    }
                })
                .build();
    }


Спасибо.
  • Вопрос задан
  • 442 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Крайне плохая идея. Количество активити вообще надо максимально уменьшать. А для этого используются фрагменты.
Ответ написан
@aol-nnov
> В шаблоне только Toast-ы на нажатие.

то есть, правильный вопрос звучит намного проще: как открыть новую активити?

ответ: интент есть для этого, например.
Ответ написан
@IceJOKER
Web/Android developer
Вместо тостов пишите код открытия нового активити.
Intent intent = new Intent(MainActivity.this, AnotherActivity.class);
startActivity(intent);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы