简单的频道管理

版权声明:橘子丶 https://blog.csdn.net/qq_43573190/article/details/85069474

一、非常重要的一步,导入依赖
(1)这是工作区间的build在这里插入图片描述
(2)导入依赖
在这里插入图片描述
activity_main.xml

<?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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <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"
        >
    </android.support.v4.view.ViewPager>
</LinearLayout>

MainActivity.this

package com.example.kanghuwei.kanghuwei;

import android.content.Intent;
import android.print.PrinterId;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import com.example.kanghuwei.kanghuwei.adapter.MPagerAdapter;
import com.example.kanghuwei.kanghuwei.fragment.MFragment;
import com.example.kanghuwei.kanghuwei.fragment.MFragment0;
import com.example.kanghuwei.kanghuwei.fragment.MFragment1;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.ArrayList;

import static android.os.Build.VERSION_CODES.M;

public class MainActivity extends AppCompatActivity {
    private TabLayout tb;
    private ViewPager vp;
    private Button btn;
    private MPagerAdapter mPagerAdapter;
    private ArrayList<Fragment> fragmentlist = new ArrayList<>();
    private ArrayList<ChannelBean> channelBeanList = new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initVeiw();
        initData();

    }
    private void initVeiw(){
        tb = findViewById(R.id.tb);
        vp = findViewById(R.id.vp);
        btn = findViewById(R.id.btn);

        mPagerAdapter = new MPagerAdapter(getSupportFragmentManager(),fragmentlist,channelBeanList,MainActivity.this);
        vp.setAdapter(mPagerAdapter);
        tb.setupWithViewPager(vp);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ChannelActivity.startChannelActivity(MainActivity.this,channelBeanList);
            }
        });

    }
    private void initData(){
        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()){
                tb.addTab(tb.newTab().setText(channelBeanList.get(i).getName()));
                if (i==0){
                    fragmentlist.add(new MFragment0());
                }else if (i==1){
                    fragmentlist.add(new MFragment1());
                }else {
                    fragmentlist.add(new MFragment());
                }
            }
        }
        mPagerAdapter.notifyDataSetChanged();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        String jsonString = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
        Gson gson = new Gson();
        final Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType();
        channelBeanList = gson.fromJson(jsonString, type);
        tb.removeAllTabs();
        fragmentlist.clear();
        for (int i=0; i<channelBeanList.size(); i++){
            if (channelBeanList.get(i).isSelect()){
                tb.addTab(tb.newTab().setText(channelBeanList.get(i).getName()));
                if (i==0){
                    fragmentlist.add(new MFragment0());
                }else if (i==1){
                    fragmentlist.add(new MFragment1());
                }else {
                    fragmentlist.add(new MFragment());
                }
            }
        }
        mPagerAdapter.notifyDataSetChanged();
    }
}

适配器

package com.example.kanghuwei.kanghuwei.adapter;

import android.content.Context;
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 java.util.ArrayList;

public class MPagerAdapter extends FragmentPagerAdapter {
    private ArrayList<Fragment>fragmentlist;
    private ArrayList<ChannelBean>channelBeanlist;
    private Context context;

    public MPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragmentlist, ArrayList<ChannelBean> channelBeanlist, Context context) {
        super(fm);
        this.fragmentlist = fragmentlist;
        this.channelBeanlist = channelBeanlist;
        this.context = context;
    }

    public MPagerAdapter(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 channelBeanlist.get(position).getName();
    }
}

MFragment0

ackage com.example.kanghuwei.kanghuwei.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class MFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        TextView textView = new TextView(getContext());
        textView.setText("MFragment0---其他空白页面");
        return textView;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43573190/article/details/85069474