TabLayout+viewpage+listView+PullTORefresh(viewpage联动listview上拉下拉)

来源:互联网 发布:荣耀7王者荣耀网络 编辑:程序博客网 时间:2024/04/27 19:08
package bawe.day0918zhoukaosan;

import android.app.Application;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;


public class App extends Application {
    @Override
    public void onCreate() {


        DisplayImageOptions options = new DisplayImageOptions.Builder()
                //设置图片在下载期间显示的图片
                .showImageOnLoading(R.mipmap.ic_arrow_down)
                .displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisk(true)
                //设置下载的图片是否缓存在内存中
                .cacheInMemory(true).build();


        ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder(
                this).defaultDisplayImageOptions(options).threadPoolSize(5)
                .build();


        ImageLoader.getInstance().init(configs);
        super.onCreate();
    }

}

===========================================

package bawe.day0918zhoukaosan;

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

    private TabLayout tab;
    private ViewPager pa;
    private List<String> list=new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //查找控件
        tab = (TabLayout) findViewById(R.id.tab);
        pa = (ViewPager) findViewById(R.id.pager);
        //福利、Android、iOS、休息视频、拓展资源、前端、all
        list.add("福利");
        list.add("Android");
        list.add("iOS");
        list.add("休息视频");
        list.add("拓展资源");
        list.add("前端");
        list.add("all");
        //tablayout和viewpager关联
        tab.setupWithViewPager(pa);
        //设置viewpager适配器
        pa.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            //重写这个方法,将设置每个Tab的标题
            @Override
            public CharSequence getPageTitle(int position) {

                return list.get(position);
            }

            @Override
            public Fragment getItem(int position) {
                //一般我们在这个位置对比一下标题是什么,,,然后返回对应的fragment
                //初始化fragment  对应position有多少,fragment有多少
                NewFragment newFragment = new NewFragment();
                Bundle bundle = new Bundle();
                //福利、Android、iOS、休息视频、拓展资源、前端、all
                if (list.get(position).equals("福利")){
                    bundle.putString("name","福利");
                }else if (list.get(position).equals("Android")){
                    bundle.putString("name","Android");
                }else if (list.get(position).equals("iOS")){
                    bundle.putString("name","iOS");
                }else if (list.get(position).equals("休息视频")){
                    bundle.putString("name","休息视频");
                }else if (list.get(position).equals("拓展资源")){
                    bundle.putString("name","拓展资源");
                }else if (list.get(position).equals("前端")){
                    bundle.putString("name","前端");
                }else if (list.get(position).equals("all")){
                    bundle.putString("name","all");
                }
                //给fragment 加bundle 数据
                //activity与fragment 1.getset,2.接口回调,3.setArguments ,getAraguments
                newFragment.setArguments(bundle);
                return newFragment;
            }

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



    }
}


=============================================

package bawe.day0918zhoukaosan;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageSize;

import java.util.List;


public class Myadpader extends BaseAdapter{

    private List<User.ResultsBean> data;
    private Context context;

    public Myadpader(List<User.ResultsBean> data, Context context) {
        this.data = data;
        this.context = context;
    }

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

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {

        Hondera hondera=null;
        if (view==null){

      hondera = new Hondera();
            view=  View.inflate(context,R.layout.zidingyi,null);
            hondera.name=view.findViewById(R.id.name);
            hondera.img= view.findViewById(R.id.img);
            view.setTag(hondera);
        }else{
            hondera = (Hondera) view.getTag();
        }
        hondera.name.setText(data.get(i).getDesc());

        List<String> images = data.get(i).getImages();
        if (images!=null){
            if (images.size()==1){
                String s = images.get(0);
                ImageSize size=new ImageSize(100,100);
                ImageLoader.getInstance().displayImage(s+ "?/imageView2/0/w/100",hondera.img,size);
            }

        }

        return view;
    }

    class Hondera{

        TextView name;
        ImageView img;
    }
}

==============================

package bawe.day0918zhoukaosan;

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import com.google.gson.Gson;
import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;
import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;

import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;


public class NewFragment extends Fragment {

    private ListView list;
    private PullToRefreshLayout mpull;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        //找到布局文件
        View v = View.inflate(getActivity(), R.layout.listview, null);
        //ListView控件
        list = (ListView)v.findViewById(R.id.list);
        mpull = v.findViewById(R.id.mpull);
        mpull.setRefreshListener(new BaseRefreshListener() {

            @Override
            public void refresh() {

                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        // 结束刷新

                        mpull.finishRefresh();
                    }
                }, 2000);
            }

            @Override
            public void loadMore() {
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        // 结束加载更多
                        mpull.finishLoadMore();
                    }
                }, 2000);
            }
        });

        return v;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Bundle bundle = getArguments();
        //接收传递过来的值
        String string = bundle.getString("name", "福利");
        try {
            String ff = URLEncoder.encode(string, "utf-8");
            //调用解析方法
            Jiexi(ff);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }


    }
    //解析方法
    private void Jiexi(final String ff) {
        //使用异步
        new AsyncTask<String,Integer,String>(){

            @Override
            protected String doInBackground(String... strings) {
                String str="";
                try {
                    URL url = new URL("http://gank.io/api/data/"+ff+"/10/1");
                    HttpURLConnection conne= (HttpURLConnection) url.openConnection();

                    conne.setConnectTimeout(5000);
                    conne.setReadTimeout(5000);
                    int responseCode = conne.getResponseCode();
                    if (responseCode==200){
                        InputStream in = conne.getInputStream();

                        byte[] by=new byte[1024];
                        int len=0;

                        while ((len=in.read(by))!=-1){
                            str+=new String(by,0,len);
                        }

                    }
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                return str;

            }

            @Override
            protected void onPostExecute(String s) {
                Log.d("zzz","qqqqqqqqqqqqqqqqqq"+s);
                //Gson解析
                Gson gson = new Gson();
                User user = gson.fromJson(s, User.class);
                List<User.ResultsBean> data=user.getResults();

                //listview适配器
                Myadpader myadpader = new Myadpader(data, getActivity());
                list.setAdapter(myadpader);
                super.onPostExecute(s);
            }
        }.execute();

    }

}





原创粉丝点击