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

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

Войти
Регистрация
Восстановить пароль
 
Fedorych
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 44
#1

viewPager onCreate method - Android

02.04.2013, 14:48. Просмотров 882. Ответов 7
Метки нет (Все метки)

Всем здрасьте, возник следующий вопрос по ViewPager:
Создаю viewPager и заполняю его в методе OnCreate главной активити:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 LayoutInflater inflater = LayoutInflater.from(this);
        pages = new ArrayList<View>();
        page = inflater.inflate(R.layout.category_browse, null);
        pages.add(page);
        page = inflater.inflate(R.layout.activity_main, null);
        pages.add(page);
        page = inflater.inflate(R.layout.browse_topics, null);
        pages.add(page);
        
        PageView pagerAdapter = new PageView(pages);
        viewPager = new ViewPager(this);
        viewPager.setAdapter(pagerAdapter);
        viewPager.setCurrentItem(1);
        setContentView(viewPager);
Так вот добавляются у меня туда 3 активити(category_browse, activity_main,browse_topics).
В активити(например category_browse) необходимо совершать кое-какие действия при ее создании, НО! после добавления этой активити в viewPager перестал вызываться метод OnCreate всех активити кроме главной, вообще ниразу в отладчике не видел вызова метода onCreate.
Вопрос: как и где вызывается этот метод для активити, которые добавлены в viewPager?
(если надо больше кода, пишите что именно, выложу)
Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
02.04.2013, 15:01     viewPager onCreate method #2
Цитата Сообщение от Fedorych Посмотреть сообщение
Так вот добавляются у меня туда 3 активити(category_browse, activity_main,browse_topics).
Добавляешь не активити, а разметку.

Цитата Сообщение от Fedorych Посмотреть сообщение
page = inflater.inflate
это создает НЕ активити, а просто view, который добавляется к главной активности
Fedorych
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 44
02.04.2013, 15:29  [ТС]     viewPager onCreate method #3
NiRamz
Хорошо, а вы не могли мне подсказать, как решить мою проблему? Ну или ссылками поделиться?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.04.2013, 15:38     viewPager onCreate method #4
а какая проблема?

Добавлено через 1 минуту
перенесите то что вы запхали в эти активити в отдельные методы главного активити, и вызывайте их там.

Добавлено через 5 минут
еще можно юзать фрагменты
http://stackoverflow.com/questions/7...de-a-viewpager
Fedorych
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 44
02.04.2013, 15:39  [ТС]     viewPager onCreate method #5
Цитата Сообщение от V0v1k Посмотреть сообщение
а какая проблема?

Добавлено через 1 минуту
перенесите то что вы запхали в эти активити в отдельные методы главного активити, и вызывайте их там.
Дело в том, что мне надо заполнять активити TextView'шками при ее создании(количество TextView может быть разным).
Как мне из главной активити вызывать метод OnCreate другой активити? Также разметка может изменяться в методах onResume
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
02.04.2013, 16:33     viewPager onCreate method #6
Цитата Сообщение от Fedorych Посмотреть сообщение
OnCreate
вызвать onCreate - элементарно
startActivity();

В вашем случаи лучше всего использовать фрагменты, простой и мощный инструмент
http://startandroid.ru/ru/uroki/vse-...lifecycle.html
почитайте, там достаточно уроков по ним, чтобы понять что к чему
Fedorych
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 44
03.04.2013, 00:45  [ТС]     viewPager onCreate method #7
всем спасибо

Добавлено через 7 часов 22 минуты
Рано я обрадовался.

Цитата Сообщение от NiRamz Посмотреть сообщение
startActivity();
Но ведь запускает сразу эту активити, т.е. не мою главную, а эту
Цитата Сообщение от NiRamz Посмотреть сообщение
В вашем случаи лучше всего использовать фрагменты
Фрагменты доступны только на андроид 3+, у меня же приложение должно работать начиная от 2.2

Опишу более подробно проблему:
Есть 3 xml c разметкой. В onCreate главного активити все они добавляются в viewPager. На других xml(кроме главной) есть элементы управления(кнопки). Так вот, обработчик событий нажатия кнопки устанавливается в, например, методе onCreate той активити, где находится кнопка. viewPager у меня на основе PageAdapter'a(может следует использовать другой для решения проблемы? какой лучше?). Так вот вопрос: как мне установить слушатель нажатия на кнопку(и обработчик этого слушателя), если даже эта активити не запускается?
Я более чем уверен, что я не единственный кто решал(и я точно уверен что решил) подобного рода проблему(?), и решение скорее всего тривиальное(ведь много людей с этим сталкивались, и наверна нашли простой способ), но я вот никак не могу додумать как. Надеюсь теперь я ясно все изъяснил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2013, 10:02     viewPager onCreate method
Еще ссылки по теме:

Android NullPointer в OnCreate
Сразу после нажатия Power вызывается OnCreate. Почему? Android
Android Ошибка VKSdk.initialize(Context) must be call from Application#onCreate()
Android Перегрузка OnCreate
Подскажите - программа вылетает в OnCreate Android

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

Или воспользуйтесь поиском по форуму:
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
03.04.2013, 10:02     viewPager onCreate method #8
Цитата Сообщение от Fedorych Посмотреть сообщение
Фрагменты доступны только на андроид 3+, у меня же приложение должно работать начиная от 2.2
используй android-support-v4.jar

Цитата Сообщение от Fedorych Посмотреть сообщение
Есть 3 xml c разметкой. В onCreate главного активити все они добавляются в viewPager. На других xml(кроме главной) есть элементы управления(кнопки). Так вот, обработчик событий нажатия кнопки устанавливается в, например, методе onCreate той активити, где находится кнопка. viewPager у меня на основе PageAdapter'a(может следует использовать другой для решения проблемы? какой лучше?). Так вот вопрос: как мне установить слушатель нажатия на кнопку(и обработчик этого слушателя), если даже эта активити не запускается?
создай свой класс, унаследовав его от PageAdapter и сделав примерно следующее (как из вариантов)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Override
        public Object instantiateItem(View collection, int position){
            LayoutInflater inflater = activity.getLayoutInflater();
            
            if(position == 0) {
                View view = inflater.inflate(R.layout.book_view_pager_item, null);
                
                ((TextView) view.findViewById(R.id.book_description_value)).setText(Html.fromHtml(book.getAbout()));
                ((ViewPager) collection).addView(view, 0);
                return view; 
            } else {
                View view = inflater.inflate(R.layout.book_view_pager_two, null);
                ((TextView) view.findViewById(R.id.book_author_value)).setText(book.getAuthors());
                ((TextView) view.findViewById(R.id.book_type_value)).setText(book.getFormat() + ", " + book.getSize() + ", " + book.getPages());
                ((TextView) view.findViewById(R.id.book_type_of_cover_value)).setText(book.getEdition());
                ((TextView) view.findViewById(R.id.book_isbn_value)).setText(book.getISBN());
                ((ViewPager) collection).addView(view, 0);
                return view; 
            }
        }
Yandex
Объявления
03.04.2013, 10:02     viewPager onCreate method
Ответ Создать тему
Опции темы

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