powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Android: Обновить Tab
20 сообщений из 20, страница 1 из 1
Android: Обновить Tab
    #38233641
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожайлуйста!

У меня стоит Spinner и в зависимости от него меняется "id_stage" - заполняются Tab'ы
У каждого Tab свое Activity которое заполняется инфой в зависимости от переданного туда параметра:
Вот этот код выполняется как только меняется "id_stage":
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
Intent intent_table = new Intent(ShowCompetitionsActivity.this, ShowTableActivity.class);           intent_table.putExtra(ShowTableActivity.EXT_Stage_Id, id_stage);

TabHost.TabSpec tabSpec;	          
tabHost.clearAllTabs();	          	          
tabSpec = tabHost.newTabSpec("tag1");       
tabSpec.setIndicator("Таблица", getResources().getDrawable(R.drawable.tab_icon_select_c_table));
tabSpec.setContent(intent_table);
tabHost.addTab(tabSpec);



Проблема в том, что первый раз все выполняется нормально. Но при последующих изменениях Spinner'a содержимое Tab'a не меняется.
Смотрю по логам, Activity второй раз больше не запускает..
Подскажите, как правильно это осуществить.
Заранее благодарен!
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38233823
Troglodit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужен нормальный полный кусок кода, а не поток сознания, либо к телепатам.
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38233833
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
под какую версию андроида пишем? если 3.0+, то так, как ты создаешь табы уже не кошерно
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38237451
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Troglodit вот обработчик спинера:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
public void onItemSelected(AdapterView<?> parent, View view,
	          int position, long id) {

	    	  id_stage = (String) stage_id.get(position);

	    	  Intent intent_table = new Intent(ShowCompetitionsActivity.this, ShowTableActivity.class);            
	          intent_table.putExtra(ShowTableActivity.EXT_Stage_Id, id_stage);
	          intent_table.putExtra(ShowTableActivity.EXT_Stage_name, c_name);
	          intent_table.putExtra(ShowTableActivity.EXT_Stage_name2, c_name2);
	          
	          Intent intent_match = new Intent(ShowCompetitionsActivity.this, ShowMatchActivity.class);            
	          intent_match.putExtra(ShowTableActivity.EXT_Stage_Id, id_stage);
	          intent_match.putExtra(ShowTableActivity.EXT_Stage_name, c_name);
	          intent_match.putExtra(ShowTableActivity.EXT_Stage_name2, c_name2);
	          
	         
	          Intent intent_stat = new Intent(ShowCompetitionsActivity.this, StatDivisionActivity.class);            
	          intent_stat.putExtra(ShowTableActivity.EXT_Stage_Id, id_stage);
	          intent_stat.putExtra(ShowTableActivity.EXT_Stage_name, c_name);
	          intent_stat.putExtra(ShowTableActivity.EXT_Stage_name2, c_name2);
	          
	      	TabHost tabHost = getTabHost();
	          
	          TabHost.TabSpec tabSpec;
	          
	          tabHost.clearAllTabs();
	          
	          tabSpec = tabHost.newTabSpec("tag1");       
	          tabSpec.setIndicator("Таблица "+id_stage, getResources().getDrawable(R.drawable.tab_icon_select_c_table));
	          tabSpec.setContent(intent_table);
	          tabHost.addTab(tabSpec);
	          
	          tabSpec = tabHost.newTabSpec("tag2");
	          tabSpec.setIndicator("Календарь", getResources().getDrawable(R.drawable.tab_icon_select_c_match));
	          tabSpec.setContent(intent_match);
	          tabHost.addTab(tabSpec);
	          
	          tabSpec = tabHost.newTabSpec("tag3");
	          tabSpec.setIndicator("Статистика", getResources().getDrawable(R.drawable.tab_icon_select_stat));
	          tabSpec.setContent(intent_stat);
	          tabHost.addTab(tabSpec);
	      }



chpasha android:minSdkVersion="7".
Подскажи, как правильно делается в более поздних версиях?

Заранее благодарен за помощь.
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38237960
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hippikПодскажи, как правильно делается в более поздних версиях?
начиная с Honeycomb рекоммендуется пользовать actionbar в режиме таб-навигации. в более старых версиях можно использовать support library + actionbarscherlock.

p.s. и вообще, имеет смысл поднять минимальную версию до 2.3. пока допишите свою поделку, на 2.1-2.2 уже никого не будет. там и сейчас уже ничтожный процент.
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249479
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите тогда, как мне обновить из одного MainActivity, элемент другого активити.
Если на одном активити у меня стоят табы. Каждый таб которого - это новое активити(Tab1Activity,Tab2Activity,Tab3Activity), в котором есть ListView, который и нужно обновить, или еще проще WebView.

Как мне из MainActivity обновить допустим ListView lv из Tab1Activity..

Помогите пожалуйста. Новичек. Запутался..
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249484
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тебе честно скажу, мне западло общаться в режиме 1 пост в неделю. я сейчас что-то напишу, ты наверняка что-то не поймешь и через неделю переспросишь. нафиг надо.
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249494
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извини, занят был другим вопросом. А сейчас освободился и полностью настроен доделать приложение.
Я могу если что скайп оставить, а с меня магарыч за мастер класс :)
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249497
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начни с того, какая целевая версия андроида и что должно получится в итоге (не как ты это хочешь делать, а именно что на выходе)
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249525
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Целевая аудитория - именно старые андройды - 2.3.3

Android 4.0.3 - 4.0.4
41,23 %
Android 2.3.3 - 2.3.7
24,56 %

chpasha, а можно тебе куда-то в личку написать. А то не хотелось бы ветку растягивать..
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249547
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hippikchpasha, а можно тебе куда-то в личку написать. А то не хотелось бы ветку растягивать..
тут будет еще кому-то польза...может быть. и еще кто-то может поучаствовать. а в личке нет.
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249669
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, так как мне обновить из одной активити элемент другой активити? :)
Это вопрос больше к jave или к android?
А дальше буду гугл сканировать
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38249984
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hippikХорошо, так как мне обновить из одной активити элемент другой активити? :)
Это вопрос больше к jave или к android?
А дальше буду гугл сканировать

chpashaначни с того, какая целевая версия андроида и что должно получится в итоге (не как ты это хочешь делать, а именно что на выходе)
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38250038
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я все это представляю, у меня есть определенные вопросы и я их задаю.
Но ты как я понял, намекаешь мне, что у меня архитектура не правильно приложения выстроена и в этом все мои проблемы.

Ок. Видимо мои вопросы слишком элементарны и глупы))

Ухожу на самообразование..
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38250062
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hippikНо ты как я понял, намекаешь мне
я нихрена и никому не намекаю. я хотел лишь, чтоб ты озвучил исходную задачу, а не способ ее решения.

но да, твоя архитектура - говно. даже на андроид 2.2-2.3 нет никакого смысла использовать старые табы, у которых каждая закладка это активити. Есть support library с поддержкой фрагментов, есть замечательный контрол viewpager с не менее замечательным pagertabstrip которые ты каждый день видишь в google play app. Есть в конце концов отличный actionbarscherlock с табами имитирующими табы из ics/jelly bean.

hippikУхожу на самообразование..давай
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38250367
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha,
благодарю!
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38252974
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha, докладываю )
Подключил support library. Использую Sherlock Action Bar, с фрагментами..
Сильно помогли уроки с start android и как обычно http://stackoverflow.com.
По традиции задам пару вопросов. Можно ли тему Sherlock's применять не к целой активити а к определенному элементу. Например спинеру? И еще вопросик. Как сохранять содержимое вкладок Sherlock's. Чтобы при переключении между вкладками контент заново не генерился?
Благодарю за помощь.
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38253143
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hippik По традиции задам пару вопросов. Можно ли тему Sherlock's применять не к целой активити а к определенному элементу.
теоретически да. нужно лишь найти стиль, применяемый к spinner в темах шерлока. я 100% где-то видел именно этот вопрос и ответ на него. поищи.

hippik Как сохранять содержимое вкладок Sherlock's. Чтобы при переключении между вкладками контент заново не генерился?
а как ты создаешь контент? нужно использовать фрагменты. По onTabUnselected прятать их, а по onTabSelected показывать/создавать. читай про фрагменты
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38253542
hippik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я их видим о не правильно использую.
У меня по onTabSelected стоит replace на определенный контент и уже потом его формирование данными.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	
if(tab.getText().equals("Календарь")){
		tab_state = "tab2";

		fTrans = getSupportFragmentManager().beginTransaction();
		fTrans.replace(R.id.fragments, frag2);

		fTrans.commit();
                progress.setMessage("Загрузка календаря соревнования");
		startLoadMatch();
}



Видимо нужно один раз создать все фрагметы и потом просто между ними переключаться.
Я не помню уже почему у меня так не получилось, но видимо то ли replace генерит фрагмент заново, то ли я не мог найти ui элемент, не активного в данный момент фрагмента, либо еще что-то
Нужно читать и эксперементировать)

пс. ктсати послед подключения этих двух библиотек, приложение увеличилось всего на 400кб
...
Рейтинг: 0 / 0
Android: Обновить Tab
    #38253569
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитай и прикрути к своим табам viewpager + одну из двух реализаций pageradapter для него. они сами будут управлять циклом жизни фрагментов в зависимости от того, что тебе выгодней. плюс получишь смену табов свайпом влево/вправо. Кстати тебе точно табы надо? если их больше 2/3 они свернутся в выпадающий список, когда мало места. PagerTabStrip ту же фунцкию выполняет и нативно прикручивается к viewpager.

...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Android: Обновить Tab
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]