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

Смена activity в Navigation Drawer

12.10.2016, 12:14. Просмотров 708. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
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...

4
Pablito
2665 / 2147 / 729
Регистрация: 12.05.2014
Сообщений: 7,499
Завершенные тесты: 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
2665 / 2147 / 729
Регистрация: 12.05.2014
Сообщений: 7,499
Завершенные тесты: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 12:48

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

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

Navigation Drawer
Всем привет. Подскажите в чем может быть проблема. Создал Navigation Drawer по...


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

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

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