频道管理

频道管理

package com.example.fragment;

import android.content.Intent;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.TextView;

import com.andy.library.ChannelBean;
import com.example.adapter.ChannoAdapter;
import com.example.jilei.BaseFragment;
import com.example.tab_frag.Tab_frag_01;
import com.example.tab_frag.Tab_frag_02;
import com.example.yuekao_01.R;
import com.qy.channel.ChannelActivity;
import com.qy.channel.bean.ChannelItem;
import com.qy.channel.db.DBUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * @Auther: dell
 * @Date: 2019/1/15 11:38:30
 * @Description:
 */
public class Frag_02 extends BaseFragment {


    private ViewPager viewpager;
    private ArrayList<Fragment> fragments;
    private TabLayout tab;
    private TextView tiao;
    private ArrayList<ChannelItem> channelItems;
    private ChannoAdapter adapter;

    @Override
    protected int RequestId() {
        return R.layout.frag_02;
    }

    @Override
    protected void initView(View view) {
      //初始化控件
        tab = view.findViewById(R.id.table);
        viewpager = view.findViewById(R.id.viewpager);
        tiao = view.findViewById(R.id.tiao);

    }

    @Override
    protected void initDta() {

        channelItems = DBUtil.getTabData(getActivity());
        //添加tablayout页面
        fragments = new ArrayList<>();
        for (int i = 0;i<channelItems.size();i++){
            String tabname = channelItems.get(i).getName();
            if ("头条".equals(tabname)){
                fragments.add(new Tab_frag_01());
            }else {
                fragments.add(new Tab_frag_02());
            }
        }

        adapter = new ChannoAdapter(getActivity().getSupportFragmentManager(),channelItems,fragments);
        viewpager.setAdapter(adapter);

        tab.setupWithViewPager(viewpager);

        //跳转的点击事件
        tiao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getActivity(),ChannelActivity.class);
                startActivityForResult(intent,0);
            }
        });
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == 0){
            channelItems = DBUtil.getTabData(getActivity());
            for (int i = 0;i<channelItems.size();i++){
                String tabname = channelItems.get(i).getName();
                if ("头条".equals(tabname)){
                    fragments.add(new Tab_frag_01());
                } else {
                    fragments.add(new Tab_frag_02());
                }
            }
            adapter = new ChannoAdapter(getActivity().getSupportFragmentManager(),channelItems,fragments);
            viewpager.setAdapter(adapter);

            tab.setupWithViewPager(viewpager);

        }
    }
}

付珂 2019/1/16 19:59:02
package com.example.adapter;

import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import com.andy.library.ChannelBean;
import com.example.tab_frag.Myfragment;
import com.qy.channel.bean.ChannelItem;

import java.util.ArrayList;
import java.util.List;

/**
 * @Auther: dell
 * @Date: 2019/1/16 15:40:27
 * @Description:
 */
public class ChannoAdapter extends FragmentPagerAdapter {

//    private FragmentManager fragmentManager;
//    List<ChannelBean> list;
private ArrayList<ChannelItem> channelItems;
    private ArrayList<Fragment> fragments;

    public ChannoAdapter(FragmentManager fm, ArrayList<ChannelItem> channelItems, ArrayList<Fragment> fragments) {
        super(fm);
        this.channelItems = channelItems;
        this.fragments = fragments;
    }

    @Override
    public Fragment getItem(int i) {

        return fragments.get(i);
    }

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

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