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

<?  version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout  ns:android=\"http://schemas.android.com/apk/res/android\"
     ns:app=\"http://schemas.android.com/apk/res-auto\"
     ns: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.set Listener(new View. Listener() {
            @Override
            public void  (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 getPage (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;
    }
}

收藏 打印