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

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

Войти
Регистрация
Восстановить пароль
 
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
#1

Как правильно пересоздать ViewSub? - Android

23.03.2016, 13:10. Просмотров 182. Ответов 7

Layout должен создаваться на активити по нажатию на кнопку, для этого использую ViewStub! Суть такова: при нажатии кнопки проверяю существует ли ViewStub, если нет - его создаю и вывожу на экран, если он есть - его нужно убрать!

Java
1
2
3
4
5
6
7
8
9
10
11
ViewStub viewStub = null;
View v;
public void onClick(View view) {
if (viewStub == null){
    viewStub = (ViewStub) finalView.findViewById(R.id.space);
      v = viewStub.inflate();
}else if (viewStub != null){
      v.setVisibility(View.GONE);
       viewStub = null;
}
}

Все работает, когда первый раз нажимаю layout отображается, при втором нажатии он скрывается!

Но при третьем нажатии на кнопку он должен распознаваться, как не существующий и заново создаваться, но этого не происходить и выбрасывает ошибку :

FATAL EXCEPTION: main java.lang.NullPointerException at com.vitaliy.useexpandablelistview.MainActivity$ListAdapter$1.onClick(MainActivity.java:167)

Вроде все понятно, что у меня
Java
1
viewStub = null
, но не понятно почему так происходит, ведь я ,когда его не существует - создаю его заново !!! ???

Помогите решить проблему !
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
23.03.2016, 13:19     Как правильно пересоздать ViewSub? #2
Цитата Сообщение от prokopov Посмотреть сообщение
правельно


код бредовый, его вытереть и сформулировать что конкретно надо сделать
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
23.03.2016, 13:24  [ТС]     Как правильно пересоздать ViewSub? #3
Паблито, При нажатии на кнопку нужно создавать layout, при повторном нажатии (если layout существует)прятать его.
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
23.03.2016, 13:26     Как правильно пересоздать ViewSub? #4
зачем его создавать каждый раз?
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
23.03.2016, 13:49  [ТС]     Как правильно пересоздать ViewSub? #5
Паблито, а как это правильно сделать ?
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
23.03.2016, 13:56     Как правильно пересоздать ViewSub? #6
а что нужно сделать?
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
23.03.2016, 13:58  [ТС]     Как правильно пересоздать ViewSub? #7
Паблито, при нажатии кнопки показывать leyout, потом при повторном нажатии если он отображается скрывать. И так далее - если нажимаем и его нет - показывать, если есть - скрывать )))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2016, 14:03     Как правильно пересоздать ViewSub?
Еще ссылки по теме:

Android Как правильно парсить?
Android Как правильно удалить Eclipse?
Как правильно распарсить Json? Android
Как правильно загружать изображения? Android
Android Как правильно сделать SwipeLayout

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

Или воспользуйтесь поиском по форуму:
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
23.03.2016, 14:03     Как правильно пересоздать ViewSub? #8
можно в разметке создать этот лаяут таким как он должен быть и задать ему свойство visibility = GONE
а в onClick проверять примерно так
Java
1
2
        if (myCoolLayout.isShown()) myCoolLayout.setVisibility(View.GONE);
        else myCoolLayout.setVisibility(View.VISIBLE);
Yandex
Объявления
23.03.2016, 14:03     Как правильно пересоздать ViewSub?
Ответ Создать тему
Опции темы

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