我构建的应用程序提供自定义添加和删除TABFragment标签。现在我想给我创建自定义的每个选项卡的id。并得到我到底的身份。我也使用tab.getPosition
,但它给了我完全在哪里。例如,我创建了五页。现在,当我是第四个选项卡,然后我想在第五个选项卡id第五页进展背景下。请给我最好的建议和任何问候。谢谢你
我的添加按钮代码。
btNewtab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
actionBar.addTab(actionBar.newTab().setText("New Tabs")
.setTabListener(HomeActivity.this)); //Adding new tab
COUNT_TAB+=1; //Add tab for counting
mAdapter.notifyDataSetChanged();
}
});
答案 0 :(得分:1)
您可以轻松地通过标记识别各个标签。只需为每个标签设置标签,并在此基础上执行操作。即
COUNT_TAB+=1;//put this line before so that you can use it as tag
actionBar.addTab(actionBar.newTab().setText("New Tabs")
.setTabListener(HomeActivity.this).setTag(COUNT_TAB));
//如果要将选定的选项卡设置为与默认值不同,请设置true或false以指示应选择哪个选项卡。您也可以通过设置位置来更改添加的选项卡的位置。下面是代码,即
actionBar.addTab(actionBar.newTab().setText("TAB1").setTag("tab1")
.setTabListener(this),0,false);
actionBar.addTab(actionBar.newTab().setText("TAB2").setTag("tab2")
.setTabListener(this),1,true);
actionBar.addTab(actionBar.newTab().setText("TAB3").setTag("tab3")
.setTabListener(this),2,false);
//要处理选项卡的click事件,必须覆盖onTabSelected()方法 我已经提供了一些示例代码,希望它能为您提供帮助。
@Override
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
if (tab.getTag().equals("tab1")) {
// When the given tab is selected, show the tab contents in the
// container view.
Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt("myvalues", 1);
fragment.setArguments(args);
getFragmentManager().beginTransaction()
.replace(R.id.container, fragment).commit();
} else if (tab.getTag().equals("tab2")) {
Toast.makeText(this, "two clicked", Toast.LENGTH_LONG).show();
} else if (tab.getTag().equals("tab3")) {
Toast.makeText(this, "three clicked", Toast.LENGTH_LONG).show();
}
}