public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TabLayout tab; private ImageButton imgbtn; private ArrayList<ChannelBean> channelBeans; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 tab = (TabLayout) findViewById(R.id.tab); imgbtn = (ImageButton) findViewById(R.id.imgbtn); //tab设置模式 tab.setTabMode(TabLayout.MODE_SCROLLABLE); //获取数据 initData(); //imgbtn监听 imgbtn.setOnClickListener(this); } private void initData() { //准备栏目的数据 channelBeans = new ArrayList<ChannelBean>(); channelBeans.add(new ChannelBean("热点", true)); channelBeans.add(new ChannelBean("军事", true)); channelBeans.add(new ChannelBean("八卦", true)); channelBeans.add(new ChannelBean("游戏", true)); channelBeans.add(new ChannelBean("宠物", true)); channelBeans.add(new ChannelBean("热卖", true)); channelBeans.add(new ChannelBean("条目一", false)); channelBeans.add(new ChannelBean("条目二", false)); channelBeans.add(new ChannelBean("条目三", false)); channelBeans.add(new ChannelBean("条目四", false)); channelBeans.add(new ChannelBean("条目五", false)); //遍历,把为TRUE的数据福赋值给tab for (int i = 0; i < channelBeans.size(); i++) { if (channelBeans.get(i).isSelect()) { tab.addTab(tab.newTab().setText(channelBeans.get(i).getName())); } } } @Override public void onClick(View view) { switch (view.getId()) { default: break; case R.id.imgbtn: ChannelActivity.startChannelActivity(MainActivity.this, channelBeans); break; } } //回传值 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == ChannelActivity.REQUEST_CODE && resultCode == ChannelActivity.RESULT_CODE) { //得到栏目管理的结果 String json = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY); //清空之前的栏目 tab.removeAllTabs(); //把新选的栏目结果更新到频道管理tab上 Gson gson = new GsonBuilder().create(); //进行Gson解析 Type type = new TypeToken<ArrayList<ChannelBean>>() { }.getType(); channelBeans = gson.fromJson(json, type); for (int i = 0; i < channelBeans.size(); i++) { if (channelBeans.get(i).isSelect()) { tab.addTab(tab.newTab().setText(channelBeans.get(i).getName())); } } } }