频道管理(第三方)

1、首先在项目的build下注册

allprojects {

repositories {

     jcenter()

     //下面这句maver才是加上的,上面的自带 的

    maven {url "https://jitpack.io"}
}
}

2、然后在app下的build中导入依赖

compile 'com.github.andyoom:draggrid:v1.0.1'

3、代码段
public class MainActivity extends AppCompatActivity {

ArrayList<ChannelBean> list =  new ArrayList<ChannelBean>();
ArrayList<Fragment> fragmentList =  new ArrayList<Fragment>();
private String jsonStr;

TabLayout tb;
ViewPager vp;
Button btn;
MAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initview();
    initdata();



}

private void initview() {
	//获取控件
    tb = (TabLayout) findViewById(R.id.tb);
    vp = (ViewPager) findViewById(R.id.vp);
    btn = (Button) findViewById(R.id.btn);
//点击按钮进入频道管理
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        //ChannelActivity提供的打开自己的方法;
            ChannelActivity.startChannelActivity(MainActivity.this,list);
        }
    });
}


//添加数据
private void initdata() {
    list.add(new ChannelBean("热点",true));

    list.add(new ChannelBean("军事",true));

    list.add(new ChannelBean("八卦",true));

    list.add(new ChannelBean("游戏",true));

    list.add(new ChannelBean("宠物",true));

    list.add(new ChannelBean("汽车",false));

    list.add(new ChannelBean("热卖",false));

    list.add(new ChannelBean("外卖",false));

    list.add(new ChannelBean("太阳花",false));

    list.add(new ChannelBean("九三",false));

    for (int i = 0; i <list.size() ; i++) {

        if (list.get(i).isSelect()) {
            if (i == 0) {
                fragmentList.add(new FRag_01());
            }else if (i == 1){
                fragmentList.add(new FRag_02());
            }else if (i == 2){
                fragmentList.add(new FRag_03());
            }else if (i == 3){
                fragmentList.add(new FRag_04());
            }else if (i == 4){
                fragmentList.add(new FRag_05());
            }else {
                fragmentList.add(new FRag_06());
            }
        }
    }
//适配器
    mAdapter = new MAdapter(getSupportFragmentManager());
    vp.setAdapter(mAdapter);
    //tablayout模式
    tb.setTabMode(TabLayout.MODE_SCROLLABLE);
    //关联viewpager
    tb.setupWithViewPager(vp);

}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //获取传过来的数据
    String json = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
    Log.e("zmz","00"+json);

    Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType();

    Log.e("zmz","11"+type);

    Gson gson = new Gson();
    //传入新的集合
    list = gson.fromJson(json, type);


    //清空fragment
    tb.removeAllTabs();
    fragmentList.clear();

    for (int i = 0; i <list.size() ; i++) {

        ChannelBean channelBean = list.get(i);
        //创建新数据
        if (channelBean.isSelect()) {

            String name = channelBean.getName();
            Log.e("zmz","00"+name);
            tb.addTab(tb.newTab().setText(name));

            if ("热点".equals(channelBean.getName())) {
                //Log.e("zmz","热点");
                fragmentList.add(new FRag_01());
            }else if("军事".equals(channelBean.getName())){
                //Log.e("zmz","军事");
                fragmentList.add(new FRag_02());
            }else if("八卦".equals(channelBean.getName())){
                //Log.e("zmz","八卦");
                fragmentList.add(new FRag_03());
            }else if("游戏".equals(channelBean.getName())){
               // Log.e("zmz","游戏");
                fragmentList.add(new FRag_04());
            }else if("宠物".equals(channelBean.getName())){
                //Log.e("zmz","宠物");
                fragmentList.add(new FRag_05());
            }else {
                Log.e("zmz","其他");
                fragmentList.add(new FRag_06());
            }
        }
    }
    //刷新适配器
    mAdapter.notifyDataSetChanged();
}
private class MAdapter extends FragmentPagerAdapter {
    public MAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int i) {
        return fragmentList.get(i);
    }

    @Override
    public int getCount() {
        return fragmentList.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return list.get(position).getName();
    }
}
}

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >

    <android.support.design.widget.TabLayout
        android:id="@+id/tb"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        />

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="+"/>
</LinearLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/vp"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    />
</LinearLayout>

猜你喜欢

转载自blog.csdn.net/qq_43567217/article/details/84329181