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

У меня стоит 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
20.04.2013, 14:44
    #38233823
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android: Обновить Tab
Нужен нормальный полный кусок кода, а не поток сознания, либо к телепатам.
...
Рейтинг: 0 / 0
20.04.2013, 15:01
    #38233833
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android: Обновить Tab
под какую версию андроида пишем? если 3.0+, то так, как ты создаешь табы уже не кошерно
...
Рейтинг: 0 / 0
23.04.2013, 23:24
    #38237451
hippik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android: Обновить Tab
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
24.04.2013, 12:26
    #38237960
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android: Обновить Tab
hippikПодскажи, как правильно делается в более поздних версиях?
начиная с Honeycomb рекоммендуется пользовать actionbar в режиме таб-навигации. в более старых версиях можно использовать support library + actionbarscherlock.

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

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

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

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

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

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

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

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

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

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

hippik Как сохранять содержимое вкладок Sherlock's. Чтобы при переключении между вкладками контент заново не генерился?
а как ты создаешь контент? нужно использовать фрагменты. По onTabUnselected прятать их, а по onTabSelected показывать/создавать. читай про фрагменты
...
Рейтинг: 0 / 0
11.05.2013, 11:31
    #38253542
hippik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android: Обновить Tab
Да я их видим о не правильно использую.
У меня по 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
11.05.2013, 12:47
    #38253569
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Android: Обновить Tab
почитай и прикрути к своим табам viewpager + одну из двух реализаций pageradapter для него. они сами будут управлять циклом жизни фрагментов в зависимости от того, что тебе выгодней. плюс получишь смену табов свайпом влево/вправо. Кстати тебе точно табы надо? если их больше 2/3 они свернутся в выпадающий список, когда мало места. PagerTabStrip ту же фунцкию выполняет и нативно прикручивается к viewpager.

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


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