maven {url “https://jitpack.io”}
依赖
implementation ‘com.github.andyoom:draggrid:v1.0.1’
//两个数组
ArrayList<ChannelBean> channelBeanlist =new ArrayList<ChannelBean>();
ArrayList<Fragment> fraglist=new ArrayList<Fragment>();
oncreate 里:
2个方法
private void getd1() {
//控件
tab = findViewById(R.id.tab);
button = findViewById(R.id.button);
page = findViewById(R.id.page);
//适配器
myadapter = new Myadapter(getSupportFragmentManager());
page.setAdapter(myadapter);
//关联
tab.setupWithViewPager(page);
//点击按钮
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ChannelActivity.startChannelActivity(MainActivity.this,channelBeanlist);
}
});
}
//方法
private void getd2() {
//数据
channelBeanlist.add(new ChannelBean("热点",true));
channelBeanlist.add(new ChannelBean("北京",true));
channelBeanlist.add(new ChannelBean("房价",true));
channelBeanlist.add(new ChannelBean("旅游",false));
channelBeanlist.add(new ChannelBean("条目1",false));
channelBeanlist.add(new ChannelBean("条目2",false));
for (int i=0;i<channelBeanlist.size();i++){
if (channelBeanlist.get(i).isSelect()){
tab.addTab(tab.newTab().setText(channelBeanlist.get(i).getName()));
if (i==0){
fraglist.add(new Frag01());
}else if(i==1){
fraglist.add(new Frag02());
}else{
fraglist.add(new Frag03());
}
}
}
//刷新适配器
myadapter.notifyDataSetChanged();
}
//onActivityResult 里
String stringExtra = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
Gson gson=new Gson();
//转换
Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType();
channelBeanlist=gson.fromJson(stringExtra,type);
//清空
tab.removeAllTabs();
fraglist.clear();
//重新添加tab和Fragment;
for (int i = 0; i < channelBeanlist.size(); i++) {
if (channelBeanlist.get(i).isSelect()) {
tab.addTab(tab.newTab().setText(channelBeanlist.get(i).getName()));
if (i == 0) {
fraglist.add(new Frag01());
}else if (i == 1){
fraglist.add(new Frag02());
}else {
fraglist.add(new Frag03());
}
}
}
myadapter.notifyDataSetChanged();
}
//适配器
class Myadapter extends FragmentPagerAdapter{
public Myadapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return fraglist.get(i);
}
@Override
public int getCount() {
return fraglist.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return channelBeanlist.get(position).getName();
}
}
在Fragment里写频道管理的话
Activity里
transaction.add(R.id.a_frag,list.get(0),“fragmrnt_1”);
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Fragment fr = manager.findFragmentByTag("fragmrnt_1");
fr.onActivityResult(requestCode,resultCode,data);
}