##布局
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="频道管理"/>
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"></android.support.design.widget.TabLayout>
##核心代码
public class FragmentOne extends BaseFragment{
private TabLayout tab;
private ViewPager pager;
private Button bt;
private ArrayList<ChannelBean> list;
private Tabadapter tabadapter;
@Override
protected int getLayoutResId() {
return R.layout.fragmentone;
}
@Override
protected void initView(View view) {
tab = view.findViewById(R.id.tab);
pager = view.findViewById(R.id.pager);
tabadapter = new Tabadapter(getChildFragmentManager());
pager.setAdapter(tabadapter);
tab.setupWithViewPager(pager);
bt = view.findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//activity中只需写这一行
//ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),list);
//fragment中
Gson gson = new Gson();
String s = gson.toJson(list);
Intent intent = new Intent(getActivity(),ChannelActivity.class);
intent.putExtra(RESULT_JSON_KEY,s);
startActivityForResult(intent,REQUEST_CODE);
}
});
}
@Override
protected void initData() {
list = new ArrayList<>();
list.add(new ChannelBean("111",true));
list.add(new ChannelBean("222",true));
list.add(new ChannelBean("333",true));
list.add(new ChannelBean("444",true));
list.add(new ChannelBean("555",true));
list.add(new ChannelBean("666",false));
list.add(new ChannelBean("777",false));
list.add(new ChannelBean("888",false));
list.add(new ChannelBean("999",false));
tabadapter.setList(list);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE){
String stringExtra = data.getStringExtra(RESULT_JSON_KEY);
Gson gson = new Gson();
List<ChannelBean> o = (List<ChannelBean>) gson.fromJson(stringExtra, new TypeToken<List<ChannelBean>>(){}.getType());
tabadapter.setList(o);
}
}
}
##adapter
public class Tabadapter extends FragmentPagerAdapter {
private List<ChannelBean> list;
//定义死数据
/*private String[] s = new String[]{
"111","222","333","444","555"
};*/
public Tabadapter(FragmentManager fm) {
super(fm);
list = new ArrayList<>();
}
public void setList(List<ChannelBean> list) {
if (list!=null) {
this.list = list;
notifyDataSetChanged();
}
}
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new FragmentTab1();
default:
return new FragmentTab2();
}
}
@Override
public int getCount() {
return list.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
if (list.get(position).isSelect()){
return list.get(position).getName();
}
return null;
}
}