Fragment 实现 轮播实现

package com.zhoukao1.activity;

import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.widget.RadioGroup;

import com.zhoukao1.R;
import com.zhoukao1.adapter.MyFragmentAdapter;
import com.zhoukao1.fragment.Fragment1;
import com.zhoukao1.fragment.Fragment2;
import com.zhoukao1.fragment.Fragment3;

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

import butterknife.Bind;
import butterknife.ButterKnife;

public class MainActivity extends FragmentActivity {

    @Bind(R.id.view_pager)
    ViewPager viewPager;
    @Bind(R.id.radio_group)
    RadioGroup radioGroup;
    private ArrayList<Fragment> list;
    private Fragment1 fragment1;
    private Fragment2 fragment2;
    private Fragment3 fragment3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        //创建集合
        list = new ArrayList<Fragment>();
        //创建fragment
        fragment1 = new Fragment1();
        fragment2 = new Fragment2();
        fragment3 = new Fragment3();
        //把fragment加入集合
        list.add(fragment1);
        list.add(fragment2);
        list.add(fragment3);
        //创建适配器
        MyFragmentAdapter adapter=new MyFragmentAdapter(getSupportFragmentManager(),list);
        //添加到视频日期
        viewPager.setAdapter(adapter);
        //点击radiogroup进行监听
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
                switch (checkedId){
                    case R.id.rb1:
                        viewPager.setCurrentItem(0);
                        break;
                    case R.id.rb2:
                        viewPager.setCurrentItem(1);
                        break;
                    case R.id.rb3:
                        viewPager.setCurrentItem(2);
                        break;
                }
            }
        });
        //viewpager监听
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                radioGroup.check(radioGroup.getChildAt(position).getId());
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
    }
}






package com.zhoukao1.adapter;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.View;

import java.util.List;

/**
 * Created by 我 on 2018/7/7.
 */

public class MyFragmentAdapter extends FragmentPagerAdapter{
    private List<Fragment> list;

    public MyFragmentAdapter(FragmentManager fm, List<Fragment> list) {
        super(fm);
        this.list = list;
    }

    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

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







package com.zhoukao1.fragment;


import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import com.google.gson.Gson;
import com.zhoukao1.R;
import com.zhoukao1.adapter.MyAdapter;
import com.zhoukao1.adapter.MyPagerAdapter;
import com.zhoukao1.bean.Student;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;

/**
 * A simple {@link Fragment} subclass.
 */
public class Fragment1 extends Fragment {


    private ListView list_view;
    private ViewPager view_pagera;
    Handler handler=new Handler(){

        private List<Student.DataBean> data;

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what==0){
                int i = view_pagera.getCurrentItem();
                i++;
                view_pagera.setCurrentItem(i);
                handler.sendEmptyMessageDelayed(0,1000);
            }else {
                if (msg.what == 1) {
                    String json = (String) msg.obj;
                    Gson gson = new Gson();
                    Student student = gson.fromJson(json, Student.class);
                    data = student.getData();
                    Log.i("aaa", data.toString());
                    //创建适配器
                    MyAdapter adapter = new MyAdapter(getActivity(), data);
                    list_view.setAdapter(adapter);
                    list_view.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                        @Override
                        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                            //createDialog(position);
                            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                            builder.setTitle("内容");
                            builder.setMessage(data.get(position).getContent()+data.get(position).getCreateTime()+data.get(position).getPhone());
                            builder.setNegativeButton("暂不更新",null);
                            builder.setPositiveButton("立即更新", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(getActivity(), "没有版权", Toast.LENGTH_SHORT).show();
                                }
                            });
                            builder.show();
                            return false;
                        }
                    });
                }
            }
        }
    };
    public Fragment1() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment1, container, false);
        list_view = (ListView) view.findViewById(R.id.list_view);
        view_pagera = (ViewPager) view.findViewById(R.id.view_pagera);
        return view;
    }
    //逻辑代码
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //创建集合
        ArrayList<Integer> list = new ArrayList<>();
        list.add(R.drawable.p2);
        list.add(R.drawable.p3);
        list.add(R.drawable.p4);
        //创建适配器
        MyPagerAdapter adapter=new MyPagerAdapter(list, getActivity());
        view_pagera.setAdapter(adapter);
        view_pagera.setCurrentItem(list.size()*1000);
        handler.sendEmptyMessageDelayed(0,0);
        //解析
        gettoJsonData();
    }

    public void gettoJsonData() {
        new Thread(){
            @Override
            public void run() {
                super.run();
                String path="http://www.yulin520.com/a2a/forum/allTypeList?sign=376C5BFC22179A1B8FF3A86D4588B29F&pageSize=10&ts=1877785007&forumType=0&page=1";
                try {
                    URL url=new URL(path);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setConnectTimeout(5000);
                    connection.setReadTimeout(5000);
                    connection.setRequestMethod("GET");
                    if (connection.getResponseCode()==200){
                        InputStream inputStream = connection.getInputStream();
                        ByteArrayOutputStream bos=new ByteArrayOutputStream();
                        byte[] buffer=new byte[1024];
                        int len=0;
                        while ((len=inputStream.read(buffer))!=-1){
                            bos.write(buffer,0,len);
                        }
                        inputStream.close();
                        bos.close();
                        String json = bos.toString();
                        Message message = Message.obtain();
                        message.what=1;
                        message.obj=json;
                        handler.sendMessage(message);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    private void createDialog(int position) {

    }
}






package com.zhoukao1.adapter;

import android.content.Context;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import java.util.List;

/**
 * Created by 我 on 2018/7/7.
 */

public class MyPagerAdapter extends PagerAdapter{
    private List<Integer> list;
    private Context context;

    public MyPagerAdapter(List<Integer> list, FragmentActivity context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        imageView.setImageResource(list.get(position%list.size()));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View)object);
    }

}


猜你喜欢

转载自blog.csdn.net/nideyida1/article/details/81057169