使用支持包中的片段创建Tab键

时间:2012-04-04 05:46:43

标签: java android android-layout

你好我正在寻找一个很好的例子,使用片段创建我的自定义标签栏(在底部)。

早些时候我曾使用Activities Groups编写过这个,但是来自android 3. *它已被弃用,我需要使用片段来完成此操作。

以下是我编写自定义标签栏的代码:

private void setTabs()
{

    //Implementing strings
    String publication = String.format("First");
    String shop = String.format("Second");

    //Adding tabs to TabActivity
    //addTab(publication, R.drawable.ic_launcher, DisplayTestActivity.class);
   //addTab(shop, R.drawable.ic_launcher, DisplayPushedTestActivity.class);



}


@Override
public void onTabChanged(String tabId) {
    // TODO Auto-generated method stub

}

/**
 * 
 * @param labelId, tab name
 * @param drawableId, tab icon image
 * @param c, responsible class
 */
/*
private void addTab(String labelId, int drawableId, Class<?> c)
{
    TabHost tabHost = getTabHost();  // The activity TabHost

    Intent intent = new Intent(this, c);

    TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId); 


    View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);

    System.out.println(tabIndicator);

    TextView title = (TextView) tabIndicator.findViewById(R.id.tab_bar_title);

    System.out.println(labelId);
    System.out.println(title);
    title.setText(labelId);
    ImageView icon = (ImageView) tabIndicator.findViewById(R.id.tab_bar_icon);
    icon.setImageResource(drawableId);

    spec.setIndicator(tabIndicator);
    spec.setContent(intent);
    tabHost.addTab(spec);
}

也许有人可以分享一些关于此的信息。

感谢。

2 个答案:

答案 0 :(得分:4)

开发人员网站上有很多关于如何执行此操作的示例。请参阅FragmentTabs.java以及API 4+ Support Demos页面。

如果您需要一步一步,这也是一个不错的tutorial

答案 1 :(得分:0)

我会尝试将Actionbarsherlock集成到您的项目中。它使您可以在所有版本中使用Honeycomb和Ice Cream Sandwich的新TabApi,直到Android 2.x.它使添加标签非常简单,您的应用程序将遵循Android设计指南,看起来就像Android应用程序。