PullToRefresh换内容

来源:互联网 发布:sql server 默认值 编辑:程序博客网 时间:2024/06/05 05:58
package com.example.yuekaomoni01;


import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;


import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;


public class Main2Activity extends AppCompatActivity {


    private RelativeLayout rel;
    private DrawerLayout drawerLayout;
    private ListView listView1;
    private List<String> datas;


    private TabLayout tabLayout;
    String[] tabs =  {"推荐","热点","体育","娱乐","社会","汽车","教育","财经","科技","游戏"};
    private ViewPager vp;
    private FragmentManager fm;


    List<Fragont_bean.DataBean> arr = new ArrayList();
    private Adapter adapter1;
    private ListView lv;
    private PullToRefreshListView pull;


    int i = 0;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        //侧拉栏
        rel = (RelativeLayout) findViewById(R.id.relayout);
        //查找组件
        drawerLayout = (DrawerLayout) findViewById(R.id.drlayout);
        listView1 = (ListView) findViewById(R.id.lv);
        //构造数据
        datas = new ArrayList<String>();
        for (int i = 0; i < 10; i++) {
            datas.add("侧拉菜单" + i);
        }
        //设置数组适配器
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, datas);
        listView1.setAdapter(adapter);


        listView1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //关闭侧拉菜单
                drawerLayout.closeDrawer(rel);
                //打开侧拉菜单
                //drawerLayout.openDrawer(rel);


                //设置数据
                ContentFragment01 contentFragment01 = new ContentFragment01();
                Bundle bundle = new Bundle();
                bundle.putString("value", datas.get(position));
                contentFragment01.setArguments(bundle);
                getSupportFragmentManager().beginTransaction().replace(R.id.lilayout, contentFragment01).commit();
            }
        });
        //导航栏横向滚动
        tabLayout = (TabLayout) findViewById(R.id.tablayout);
        for(int i=0;i<tabs.length;i++){
            tabLayout.addTab(tabLayout.newTab().setText(tabs[i]));
        }
        //吐司
        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                Toast.makeText(Main2Activity.this,tab.getText(),Toast.LENGTH_SHORT).show();
                if(tab.getText().equals("推荐")){
                    //请求推荐的网络数据


                }else if(tab.getText().equals("热点")){
                    //请求热点的网络数据
                }else{


                }
            }
            @Override
            public void onTabUnselected(TabLayout.Tab tab) {


            }
            @Override
            public void onTabReselected(TabLayout.Tab tab) {


            }
        });
        //解析上拉刷新下拉加载
        pull = (PullToRefreshListView) findViewById(R.id.pull);
        pull.setMode(PullToRefreshBase.Mode.BOTH);
        lv = pull.getRefreshableView();
        adapter1 = new Adapter();
        lv.setAdapter(adapter1);


        new MyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0");
        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {


            @Override
            //上拉
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                arr.clear();
                i = 0;
                new MyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + i);
            }


            @Override
            //下拉加载20条
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                i = i + 20;
                new MyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + i);


            }
        });


    }
    class MyAsyncTask extends AsyncTask<String, Void, String> {


        @Override
        protected String doInBackground(String... params) {
            String string = "";
            StringBuffer stringBuffer = new StringBuffer();
            try {
                URL url = new URL(params[0]);
                URLConnection urlConnection = url.openConnection();
                InputStream inputStream = urlConnection.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                while ((string = bufferedReader.readLine()) != null) {
                    stringBuffer.append(string);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return stringBuffer.toString();
        }


        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Fragont_bean fragone_bean = new Gson().fromJson(s, Fragont_bean.class);
            List<Fragont_bean.DataBean> data = fragone_bean.getData();
            arr.addAll(data);
            adapter1.notifyDataSetChanged();
            pull.onRefreshComplete();
        }
    }


    class Adapter extends BaseAdapter {


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


        @Override
        public Object getItem(int position) {
            return arr.get(position);
        }


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


        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Sj sj = new Sj();
            Fragont_bean.DataBean dataBean = arr.get(position);
            if (convertView==null){
                convertView = View.inflate(Main2Activity.this,R.layout.pulllist,null);
                sj.image= (ImageView) convertView.findViewById(R.id.iv);
                sj.tv= (TextView) convertView.findViewById(R.id.tv);
                convertView.setTag(sj);
            }else {
                sj =(Sj) convertView.getTag();
            }
            sj.tv.setText(dataBean.getSUBTITLE());
            DisplayImageOptions options = new DisplayImageOptions.Builder()
                    .cacheInMemory(true)
                    .cacheOnDisk(true)
                    .showImageOnLoading(R.drawable.zhengzaijiazai)
                    .showImageForEmptyUri(R.drawable.zhengzaijiazai)
                    .showImageOnFail(R.drawable.zhengzaijiazai)
                    .bitmapConfig(Bitmap.Config.RGB_565)
                    .build();
            ImageLoader.getInstance().displayImage((String) dataBean.getIMAGEURL(),sj.image,options);


            return convertView;
        }
    }
    class Sj{
        ImageView image;
        TextView tv;
    }
}



原创粉丝点击