您的位置:首页 > 理论基础 > 计算机网络

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

2017-09-19 09:23 399 查看
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
4000
(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();

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息