2012-10-19 36 views
0

我想在操作栏中使用标签。为了简单起见,现在只有一个选项卡。问题是没有view/ui可见。带标签的操作栏:不使用的分段

活性的onCreate functn包含凸片 -

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    tabs = new Vector<ActionBar.Tab>(); 
    ActionBar actionbar = getActionBar(); 
    actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    ActionBar.Tab accountsTab = actionbar.newTab().setText("Accounts"); 
    Fragment accountsFragment = new AccountsFragment(); 
    accountsTab.setTabListener(new MyTabListener(accountsFragment)); 
    actionbar.addTab(accountsTab); 
    tabs.add(accountsTab); 
} 

延伸片段(android.app.Fragment)片段AccountsFragment的oncreateview:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    TextView textView = new TextView(getActivity()); 
    textView.setText("SimpleFragmentText"); 
    textView.setVisibility(View.VISIBLE); 
    textView.setTextSize(20); 
    return textView; 
} 

最后跳听者如下:

public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
    if(fragment!=null) { 
     fragmentTransaction.add(fragment,"accounts"); 
     fragmentTransaction.show(fragment); 
    } 
} 

@Override 
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
    if(fragment!=null) { 
     fragmentTransaction.remove(fragment); 
    } 
} 

所有其他功能都没有被覆盖。没有任何显示会显示标题为“帐户”的标签。

我的main.xml包含线性布局。

+0

您还没有添加任何文本到文本视图。 textView.setText(“Testing tabs”); –

+0

即:textView.setText(“SimpleFragmentText”); – singhsumit

+0

我错过了XML? – singhsumit

回答

1

试试这个:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     tabs = new Vector<ActionBar.Tab>(); 
     ActionBar actionbar = getActionBar(); 
     actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     ActionBar.Tab accountsTab = actionbar.newTab().setText("Accounts"); 
     accountsTab.setTabListener(new MyTabListener()); 
     actionbar.addTab(accountsTab); 
     tabs.add(accountsTab); 
    } 

    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
     if(fragment!=null) { 
      AccountsFragment frag = new AccountsFragment(); 
      fragmentTransaction.add(android.R.id.content, frag); 
     } 
    } 

    @Override 
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { 
     if(fragment!=null) { 
      fragmentTransaction.remove(fragment); 
     } 
    } 
+0

不工作......此外,它可能是好的调试目的,但否则,tablistener在上述情况下是不可重复使用的。 – singhsumit

+0

你也可以发布你的XML布局代码? – input

+0

我的xml不正确..谢谢你.. – singhsumit

2

试试这个在您的onTabSelected -

public void onTabSelected(Tab tab, FragmentTransaction ft) { 
      // Check if the fragment is already initialized 
      if (mFragment == null) { 
       // If not, instantiate and add it to the activity 
       mFragment = (Fragment) Fragment.instantiate(mActivity, mClass.getName()); 
       ft.add(android.R.id.content, mFragment, mTag); 
      } else { 
       // If it exists, simply attach it in order to show it 
       ft.attach(mFragment); 
      } 
     } 
+0

没有工作.. – singhsumit