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

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

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

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

23.03.2016, 13:10. Просмотров 206. Ответов 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
, но не понятно почему так происходит, ведь я ,когда его не существует - создаю его заново !!! ???

Помогите решить проблему !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2016, 13:10     Как правильно пересоздать ViewSub?
Посмотрите здесь:

Как пересоздать ViewSub? - Программирование Android
Искал в гугле но ничего не нашел.Суть вот в чем:есть меню,при нажатии на определенную кнопку должен загрузиться определенный layout...

При клики в BaseAdapter меняется массив строк, как пересоздать ListView с новым массивом? - Программирование Android
Здравствуйте! Имеется класс: package ru.contedevel.mathworker; import java.util.ArrayList; import...

Как правильно парсить? - Программирование Android
У меня есть следующая строка: Как с помощью JSON-парсера считать значение number с объекта order со значением 0 не перебирая их?...

Как правильно использовать LeakCanary? - Программирование Android
как правильно использовать LeakCanary, чтобы можно было определять утечки во всем приложении, а не только утечки активити?

Как правильно передавать контекст - Программирование Android
Возникли пару вопросов 1) подскажите как реализовать передачу контекста нового активити второму классу при повороте экрана и...

Как правильно импортировать проект? - Программирование Android
Я нашел проект похожие на мою. По этой ссылке http://programmerguru.com/android-tutorial/android-multicast-push-notifications-using-gcm/. В...

Как правильно распарсить Json? - Программирование Android
protected String doInBackground(String... args) { // Будет хранить параметры List<NameValuePair> params = new...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 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 существует)прятать его.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
23.03.2016, 13:26     Как правильно пересоздать ViewSub? #4
зачем его создавать каждый раз?
prokopov
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
23.03.2016, 13:49  [ТС]     Как правильно пересоздать ViewSub? #5
Паблито, а как это правильно сделать ?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 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?
Еще ссылки по теме:

Как правильно сделать SwipeLayout - Программирование Android
у меня есть такая разметка <com.daimajia.swipe.SwipeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

Как правильно работать с BITMAP? - Программирование Android
задача менять цвет картинки которая стоит в фоне у EditText; ну почитал, посмотрел ... везде работают с ImageView/// как мне...

Как правильно обработать onTouchListener - Программирование Android
В моем коде обработчик прикосновений работает как onClickListener. Помогите исправить. Нужно сделать так, чтоб при прикосновении на...

Как правильно написать функцию? - Программирование Android
Подскажите, пожалуйста, как правильно написать функцию, вычисляющую интервал времени между настоящим (current) и прошедшим временем...

Как правильно удалить Eclipse? - Программирование Android
как правильно удалить eclipse?? у меня стоит 2 eclipse. Как удалить один из них, просто при удалении его в корзину дальше из корзины его...


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

Или воспользуйтесь поиском по форуму:
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 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?
Ответ Создать тему
Опции темы

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