2011-06-16 24 views
1

我有一个选项卡活动,它的每个选项卡都调用相同的活动,比如说说MyTabInterface。所以我想我的MyTabInterface可以采取哪些选项卡是pressed.I曾尝试用下面的代码要做到这一点,但没有似乎工作在每个选项卡中调用相同的活动setContent()

intent = new Intent().setClass(this,MyTabInterface.class); 
intent.putExtra("interface",tabs.elementAt(0).getAction()); 
intent.putExtra("data",tabs.elementAt(0).getData()); 
spec = tabHost.newTabSpec(tabs.elementAt(0).getName()).setIndicator(tabs.elementAt(0).getLabel().toString(),res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent); 
tabHost.addTab(spec); 


intent = new Intent().setClass(this,MyTabInterface.class); 
intent.putExtra("interface","table"); 
intent.putExtra("data","table_data"); 
spec= tabHost.newTabSpec(tabs.elementAt(1).getName()).setIndicator(tabs.elementAt(1).getLabel().toString(),res.getDrawable(R.drawable.ic_tab_artists)) 
.setContent(intent); 
tabHost.addTab(spec); 

我的视图将根据putExtra细节改变的信息。这里在这两个标签中调用相同的活动类。拳头选项卡显示正确。但第二个显示与第一个相同。

我该如何解决这个问题 ?

回答

3

这里是TabActivity一段代码希望这有助于:

public class InfralineTabWidget extends android.app.TabActivity{ 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    @SuppressWarnings("unused") 
    Resources res = getResources(); 
    TabHost tabHost = (TabHost)getTabHost(); 

    TabHost.TabSpec spec; 
    @SuppressWarnings("unused") 
    Intent intent; 
tabHost.getTabWidget().setBackgroundDrawable(getResources().getDrawable(R.drawable.bluenavbar)); 
    TextView txtTab = new TextView(this); 
     txtTab.setText(getString(R.string.top_news)); 
     txtTab.setPadding(8, 9, 8, 9); 
     txtTab.setTextColor(Color.WHITE); 
     txtTab.setTextSize(14); 
    txtTab.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); 
     txtTab.setBackgroundResource(R.drawable.tab_news); 
    intent = new Intent().setClass(this, TopNewsGroup.class); 
    spec = tabHost.newTabSpec("topNews").setIndicator(txtTab).setContent(new Intent(this,TopNewsGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 
    tabHost.addTab(spec); 

    TextView txtTab1 = new TextView(this); 
    txtTab1.setText(getString(R.string.power)); 
    txtTab1.setPadding(8, 9, 8, 9); 
    txtTab1.setTextColor(Color.WHITE); 
    txtTab1.setTextSize(14); 
    txtTab1.setTypeface(localTypeface1); 
    txtTab1.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); 
    txtTab1.setBackgroundResource(R.drawable.tab_power); 
    intent = new Intent().setClass(this, PowerGroup.class); 
    spec = tabHost.newTabSpec("power").setIndicator(txtTab1).setContent(new Intent(this,PowerGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); 
    tabHost.addTab(spec); 


    tabHost.setCurrentTab(0); 
     tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 100; 
     tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 100; 

     tabHost.getTabWidget().getChildAt(0).getLayoutParams().width = 160; 
     tabHost.getTabWidget().getChildAt(1).getLayoutParams().width = 160;  

} 

}

+0

感谢拉胡尔,它是工作 – warna 2011-06-16 08:14:36

+0

感谢名单FLAG_ACTIVITY_CLEAR_TOP工作正常 – Sourabh 2011-11-09 04:22:47

0
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.maiin); 




     final TabHost tabHost = (TabHost) getTabHost(); 
     try {    

      tabHost.addTab(createTab(FIRST_ACTIVITY_NAME.class, "eter", 
        "eter", R.drawable.tab_icon_events)); 
      tabHost.addTab(createTab(SECONDACTIVITY_NAME.class, ".abc", ".abc", 
        R.drawable.tab_icon_pitchforkfm)); 
      tabHost.addTab(createTab(THIRD_ACTIVTY_NAME.class, "xyz", "xyz", 
        R.drawable.tab_icon_home)); 
      tabHost.addTab(createTab(ExtraInfromation.class, "wewr", "wewr", 
        R.drawable.tab_icon_tv));  


      tabHost.setCurrentTab(1); 
     } catch (Exception e) { 
      // TODO: handle exception 
     }  
     tabHost.getTabWidget().getChildAt(0).getLayoutParams().width = 85; 

     tabHost.getTabWidget().getChildAt(1).getLayoutParams().width = 85; 
     tabHost.getTabWidget().getChildAt(2).getLayoutParams().width = 85; 
     tabHost.getTabWidget().getChildAt(3).getLayoutParams().width = 85; 
tabHost.setOnTabChangedListener(new OnTabChangeListener() { 

    @Override 
    public void onTabChanged(String tabID) { 
     // TODO Auto-generated method stub 
     if(tabID.equals(".xyz")){ 


     //DO SOMETHING 
     } 

    } 
}); 
    } 



    private TabSpec createTab(final Class<?> intentClass, final String tag, 
      final String title, final int drawable) { 
     final Intent intent = new Intent().setClass(this, intentClass); 

     final View tab = LayoutInflater.from(getTabHost().getContext()) 
       .inflate(R.layout.tab, null); 
     ((TextView) tab.findViewById(R.id.tab_text)).setText(title); 
     ((ImageView) tab.findViewById(R.id.tab_icon)) 
       .setImageResource(drawable); 

     return getTabHost().newTabSpec(tag).setIndicator(tab) 
       .setContent(intent); 

    } 
相关问题