Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Глупый
2 / 2 / 2
Регистрация: 25.11.2015
Сообщений: 37
1

Смена activity в Navigation Drawer

12.10.2016, 12:14. Просмотров 1506. Ответов 4
Метки нет (Все метки)

Буду в очередной раз оправдывать свой ник.

Суть вопроса - распишите по полочкам как сменить activity.

В Android Studio создаю стандартный проект с Navigation Drawer.

Создаю класс Edit (соответственно создается activity_edit.xml в res/layout/). В activity_edit.xml прописываю в заголовке android:id="@+id/activity_edit". Еще добавляю туда две кнопки (им так же прописываю id).

Теперь в MainActivity.class в секцию if else дописываю:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
 
        if (id == R.id.Operations) {
            // Handle the camera action
        } else if (id == R.id.Reports) {
 
        } else if (id == R.id.Settings) {
            setContentView(R.layout.activity_edit);
        } else if (id == R.id.About) {
 
        }
 
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
В итоге при нажатии на пункт Settings на телефоне\эмуляторе получаю ошибку

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at com.lexfall.purse.MainWindow.onNavigationItemSelected(MainActivity.java:85)


Соответственно ругается на 85 строку, а именно

Java
1
        drawer.closeDrawer(GravityCompat.START);
Подскажите в чем дело?

P.S. Без фрагментов. Интересует почему у меня не получается просто заменить одно activity на другое и как всё же надо сплясать с бубном что бы нормально всё работало.
1
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2016, 12:14
Ответы с готовыми решениями:

Как в Navigation Drawer Activity засунуть Activity?
Здравствуйте! у меня такая проблема navigation drawer activity работает только с фрагментами как...

Navigation drawer на многих activity
На б*длокодил от балды не смотря а может уже есть готовое решение:?) Скажите ли так вобще можно,...

Создание окон в navigation drawer activity
Ребят, всем привет. Пытаюсь создать фрагменты в navigation drawer activity, но не могу сделать...

Android Studio - Navigation Drawer Activity, многостраничное
Всем доброго времени суток) Справедливости ради, хочу сказать, что я не сразу стал создавать тему,...

Белая полоса внизу navigation drawer activity
Добрый день! Не могу разобраться с белой полосой в navigation drawer activity.Она появилась после...

4
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
12.10.2016, 12:21 2
Цитата Сообщение от Глупый Посмотреть сообщение
setContentView(R.layout.activity_edit);
так не делается

активити это отдельный вообще экран - класс и разметка для него, там уже не будет ничего из разметки первой активити

поэтому надо делать на фрагментах, уроков полно в инете на эту тему
0
Глупый
2 / 2 / 2
Регистрация: 25.11.2015
Сообщений: 37
12.10.2016, 12:35  [ТС] 3
Цитата Сообщение от Паблито Посмотреть сообщение
так не делается
Окей. Верю. Это же я наверное создал а не студия

Java
1
2
3
4
5
6
7
public class MainWindow extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_window);
Теперь по делу. Если я все правильно понял. В новой activity у меня нету открытого в первом окне Drawer (Следовательно передаем в новое activity данные по Drawer и всё будет ок?)

Суть в том что с фрагментами то разобрался. Но ткнулся в смену activity и залип.
0
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
12.10.2016, 12:43 4
дровер один на все приложение, в идеале
все на фрагментах, просто по нажатию на пункт в дровере они меняются в своем контейнере
1
Глупый
2 / 2 / 2
Регистрация: 25.11.2015
Сообщений: 37
12.10.2016, 12:48  [ТС] 5
Ок, спасибо.
0
12.10.2016, 12:48
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 12:48

Navigation Drawer Menu: можно ли использовать activity?
В Navigation Drawer Menu используются только фрагменты или можно обычными Активитями пользоваться?...

Navigation drawer activity: немного тормозит при открытии шторки
Тормозит когда доходит до item иконок(.png) | загружаю из drawble, их 8 шт. Просто не так плавно...

Приложение падает когда шапка Navigation Drawer Activity пропадает из виду
В моей программе используется Navigation Drawer Activity и в нем много пунктов меню. И поэтому как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.