Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Глупый
2 / 2 / 0
Регистрация: 25.11.2015
Сообщений: 37
#1

Смена activity в Navigation Drawer - Программирование Android

12.10.2016, 12:14. Просмотров 338. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Смена activity в Navigation Drawer (Программирование Android):

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

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

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

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

Navigation Drawer - Программирование Android
помогите найти ошибку. код главного активити package ua.com.cls; import android.annotation.SuppressLint; import...

Navigation Drawer - Программирование Android
Всем привет. Подскажите в чем может быть проблема. Создал Navigation Drawer по этому примеру. http://habrahabr.ru/post/250765/ добавил туда...

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

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

поэтому надо делать на фрагментах, уроков полно в инете на эту тему
0
Глупый
2 / 2 / 0
Регистрация: 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
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
12.10.2016, 12:43 #4
дровер один на все приложение, в идеале
все на фрагментах, просто по нажатию на пункт в дровере они меняются в своем контейнере
1
Глупый
2 / 2 / 0
Регистрация: 25.11.2015
Сообщений: 37
12.10.2016, 12:48  [ТС] #5
Ок, спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 12:48
Привет! Вот еще темы с ответами:

Navigation drawer - Программирование Android
Скажите, как сделать так чтобы при открытии другого activity, navigation drawer можно было так же с левой стороны на экране вызвать? При...

Navigation Drawer - Программирование Android
Пытаюсь разобраться с Navigation Drawer. Делаю по гайду https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer и в...

Navigation drawer - Программирование Android
Как так подключить navigation drawer чтобы он был доступен не в одном а во всех или в нескольких активити приложения и во всех этих...

Navigation Drawer не работает - Программирование Android
только начал программировать. делал navigation draver по инструкции на хабре. при запуске приложение просто вылетает, а в логах такая...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
12.10.2016, 12:48
Ответ Создать тему
Опции темы

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