2010-11-19 2 views
1

У меня есть TabActivity, который содержит много вкладок. Каждая вкладка относится к одной и той же активности, однако логика выполняется внутри действия, которое определяет, что нужно загружать. Я хотел бы, чтобы это было сделано путем передачи логического значения на соответствующую вкладку. Как я могу это сделать?Как я могу передать дополнения в намерение внутри TabActivity?

package com.stocktwits.activity; 

import android.app.TabActivity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.widget.TabHost; 

public class StockTwitsTabActivity extends TabActivity{ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.stocktwits_tab_activity); 

     Resources res = getResources(); // Resource object to get Drawables 
     TabHost tabHost = getTabHost(); // The activity TabHost 
     TabHost.TabSpec spec; // Resusable TabSpec for each tab 
     Intent intent; // Reusable Intent for each tab 

     // Create an Intent to launch an Activity for the tab (to be reused) 
     intent = new Intent().setClass(this, StreamActivity.class); 

     // Initialize a TabSpec for each tab and add it to the TabHost 
     intent.putExtra("reloadAll", true); 
     spec = tabHost.newTabSpec("all").setIndicator("All",res.getDrawable(R.drawable.icon)).setContent(intent); 
     tabHost.addTab(spec); 

     // Do the same for the other tabs 
     intent = new Intent().setClass(this, StreamActivity.class); 
     spec = tabHost.newTabSpec("home").setIndicator("Home",res.getDrawable(R.drawable.icon)).setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, StreamActivity.class); 
     spec = tabHost.newTabSpec("mentions").setIndicator("Mentions",res.getDrawable(R.drawable.icon)).setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, StreamActivity.class); 
     spec = tabHost.newTabSpec("directs").setIndicator("Directs",res.getDrawable(R.drawable.icon)).setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, StreamActivity.class); 
     spec = tabHost.newTabSpec("more").setIndicator("More",res.getDrawable(R.drawable.icon)).setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(0); 
    } 
} 
+0

Почему вы используете активность вместо вид, если вид всегда одинаков для каждой вкладки? Я думаю, вы можете использовать 'android.widget.TabHost.OnTabChangeListener' и обрабатывать здесь содержимое основного вида –

+0

, можете ли вы предоставить мне пример TabHost, который загружает представления вместо действий? –

ответ

0

Похоже, вы делаете это неправильно. Зачем вам нужно, чтобы одна и та же деятельность проходила на всех вкладках? Используйте либо различные действия, либо разные виды. Не такая же деятельность.

+0

Моя активность заполняет список из некоторых URL-адресов. Есть, вероятно, 10 разных URL-адресов, которые я переключаю между ними. Правильно ли это звучит? Или мне еще нужно использовать разные представления? Было бы плохой практикой создавать 10 различных видов деятельности. –

0

Посмотрите на here

Позвольте мне знать, если это правильное решение для вашей цели

 Смежные вопросы

  • Нет связанных вопросов^_^