zoukankan      html  css  js  c++  java
  • 选择

    package com.bwie.test;

    import java.util.ArrayList;

    import com.bwie.fragment.Fragment1;
    import com.bwie.fragment.Fragment2;
    import com.bwie.fragment.Fragment3;
    import com.bwie.fragment.Fragment4;

    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v4.view.ViewPager.OnPageChangeListener;
    import android.view.View;
    import android.view.ViewGroup;
    import android.view.View.OnClickListener;
    import android.widget.RadioButton;

    public class MainActivity extends FragmentActivity implements OnClickListener{

        private ViewPager viewPager;
        private ArrayList<RadioButton> rbList=new ArrayList<RadioButton>();
        private ArrayList<View> viewList=new ArrayList<View>();
        private RadioButton rb_btn1;
        private RadioButton rb_btn2;
        private RadioButton rb_btn3;
        private RadioButton rb_btn4;
        private View view1;
        private View view2;
        private View view3;
        private View view4;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
                
                @Override
                public int getCount() {
                    return 1;
                }
                
                @Override
                public Fragment getItem(int position) {
                    Fragment fragment=null;
                    switch (position) {
                    case 0:
                        fragment=new Fragment1();
                        break;
                    case 1:
                        fragment=new Fragment2();
                        break;
                    case 2:
                        fragment=new Fragment3();
                        break;
                    case 3:
                        fragment=new Fragment4();
                        break;
                    default:
                        break;
                    }
                    return fragment;
                }
            });
            //设置监听
            viewPager.setOnPageChangeListener(new OnPageChangeListener() {
                
                @Override
                public void onPageSelected(int position) {
                    for (int i = 0; i < rbList.size(); i++) {
                        if(i==position){
                            rbList.get(i).setTextColor(Color.GREEN);
                            viewList.get(i).setBackgroundColor(Color.GREEN);
                        }else{
                            rbList.get(i).setTextColor(Color.BLACK);
                            viewList.get(i).setBackgroundColor(Color.WHITE);
                        }
                    }
                }
                
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                    
                    
                }
                
                @Override
                public void onPageScrollStateChanged(int arg0) {
                    
                    
                }
            });
        }
        /**
         * 初始化
         */
        private void initView() {
            viewPager=(ViewPager) findViewById(R.id.viewpager);
            rb_btn1=(RadioButton)findViewById(R.id.rb_btn1);
            rb_btn2=(RadioButton)findViewById(R.id.rb_btn2);
            rb_btn3=(RadioButton)findViewById(R.id.rb_btn3);
            rb_btn4=(RadioButton)findViewById(R.id.rb_btn4);
            view1=(View)findViewById(R.id.view1);
            view2=(View)findViewById(R.id.view2);
            view3=(View)findViewById(R.id.view3);
            view4=(View)findViewById(R.id.view4);
            rbList.add(rb_btn1);
            rbList.add(rb_btn2);
            rbList.add(rb_btn3);
            rbList.add(rb_btn4);
            viewList.add(view1);
            viewList.add(view2);
            viewList.add(view3);
            viewList.add(view4);
            for (int i = 0; i < rbList.size(); i++) {
                rbList.get(i).setOnClickListener(this);
            }
        }
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.rb_btn1:
                viewPager.setCurrentItem(0);        
                break;
            case R.id.rb_btn2:
                viewPager.setCurrentItem(1);        
                break;
            case R.id.rb_btn3:
                viewPager.setCurrentItem(2);        
                break;
            case R.id.rb_btn4:
                viewPager.setCurrentItem(3);        
                break;
            default:
                break;
            }
            
        }
    }

    package com.bwie.bean;

    import java.util.ArrayList;
    import java.util.LinkedList;

    import com.thoughtworks.xstream.annotations.XStreamAlias;
    import com.thoughtworks.xstream.annotations.XStreamImplicit;
    @XStreamAlias("oschina")
    public class Bean {
        public String catalog;
        public String newsCount;
        @XStreamAlias("newslist")
        public NewsList newslist;
        public String pagesize;
        public class NewsList{
            @XStreamImplicit(itemFieldName="news")
            public LinkedList<Newss> news;
        }
        public class Newss{
            public String id;
            public String title;
            public String body;
            public String commentCount;
            public String author;
            public String authorid;
            public String pubDate;
            public String url;
            public NewsType newstype;
        }
        public class NewsType{
            public String type;
            public String authoruid2;
            public String eventurl;
            public String attachment;
        }
    }

    package com.bwie.bean;

    import java.util.ArrayList;
    import java.util.LinkedList;

    import com.thoughtworks.xstream.annotations.XStreamAlias;
    import com.thoughtworks.xstream.annotations.XStreamImplicit;

    @XStreamAlias("oschina")
    public class Bean2 {
        public String pagesize;
        public Blogs blogs;
        public class Blogs{
            @XStreamImplicit(itemFieldName="blog")
            public LinkedList<Blogss> blog;
        }
        public class Blogss{
            public String id;
            public String title;
            public String body;
            public String url;
            public String pubDate;
            public String authoruid;
            public String authorname;
            public String commentCount;
            public String documentType;
        }
    }

    package com.bwie.fragment;

    import java.util.ArrayList;
    import java.util.LinkedList;

    import com.bwie.adapter.MyAdapter;
    import com.bwie.bean.Bean;
    import com.bwie.bean.Bean.Newss;
    import com.bwie.test.MainActivity;
    import com.bwie.test.R;
    import com.handmark.pulltorefresh.library.ILoadingLayout;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
    import com.handmark.pulltorefresh.library.PullToRefreshBase;
    import com.handmark.pulltorefresh.library.PullToRefreshListView;
    import com.lidroid.xutils.HttpUtils;
    import com.lidroid.xutils.exception.HttpException;
    import com.lidroid.xutils.http.ResponseInfo;
    import com.lidroid.xutils.http.callback.RequestCallBack;
    import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
    import com.thoughtworks.xstream.XStream;
    import com.thoughtworks.xstream.io.xml.DomDriver;

    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.text.format.DateUtils;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ListView;
    import android.widget.Toast;

    public class Fragment1 extends Fragment {
        
        private View view;
        private PullToRefreshListView pull_refresh_list;
        private MyAdapter adapter;
        private int index=1;
        private MainActivity mainActivity;
        private ListView listView;
        protected LinkedList<Newss> list;
        private boolean flag=true;
        
        @Override
        public View onCreateView(LayoutInflater inflater,
                @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            view = inflater.inflate(R.layout.frag1, container, false);
            return view;
        }
        
        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            pull_refresh_list=(PullToRefreshListView)view.findViewById(R.id.lv_view);
            listView = pull_refresh_list.getRefreshableView();
            pull_refresh_list.setMode(Mode.PULL_FROM_START);
            pull_refresh_list.getLoadingLayoutProxy(false, true).setPullLabel(
                    "上拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(false, true).setReleaseLabel(
                    "松开加载...");
            pull_refresh_list.getLoadingLayoutProxy(false, true)
                    .setRefreshingLabel("正在加载...");
            //设置上拉刷新文本
            pull_refresh_list.getLoadingLayoutProxy(true, false).setPullLabel(
                    "下拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false).setReleaseLabel(
                    "放开刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false)
                    .setRefreshingLabel("正在加载...");
            mainActivity = (MainActivity) getActivity();
            // 下拉刷新监听
            // Set a listener to be invoked when the list should be refreshed.下拉刷新处理
            pull_refresh_list
                    .setOnRefreshListener(new OnRefreshListener<ListView>() { // 2
                        @Override
                        public void onRefresh(
                                PullToRefreshBase<ListView> refreshView) {
                            flag=false;
                            index++;
                            String label = DateUtils.formatDateTime(
                                    getActivity(),
                                    System.currentTimeMillis(),
                                    DateUtils.FORMAT_SHOW_TIME
                                            | DateUtils.FORMAT_SHOW_DATE
                                            | DateUtils.FORMAT_ABBREV_ALL);
                            refreshView.getLoadingLayoutProxy()
                                    .setLastUpdatedLabel(label);// 3.刷新界面处理代理,显示新的时间
                            new GetDataTask().execute(); // 4.执行自定义AsyncTask,进行数据的请求刷新
                        }
                        
                    });
            
            pull_refresh_list.setOnLastItemVisibleListener(new OnLastItemVisibleListener() {
                
                @Override
                public void onLastItemVisible() {
                    flag=true;
                    index++;
                    new GetDataTask().execute();
                }
            });
            getInfo();
            super.onActivityCreated(savedInstanceState);
        }

        private void getInfo() {
            HttpUtils utils=new HttpUtils();
            utils.send(HttpMethod.GET,"http://www.oschina.net/action/api/news_list?catalog=1&pageIndex="+index+"&pageSize=10",new RequestCallBack<String>() {
                
                @Override
                public void onFailure(HttpException arg0, String arg1) {
                    Toast.makeText(mainActivity, "请求失败",0).show();
                }
                
                @Override
                public void onSuccess(ResponseInfo<String> arg0) {
                    String xml=arg0.result;
                    XStream stream=new XStream(new DomDriver());
                    stream.processAnnotations(Bean.class);
                    Bean bean = (Bean) stream.fromXML(xml);
                    if(flag){
                        if(adapter==null){
                            list = bean.newslist.news;
                            adapter=new MyAdapter(mainActivity, list);
                            listView.setAdapter(adapter);
                            pull_refresh_list.onRefreshComplete();
                        }else{
    //                        list.addAll(bean.newslist.news);
                            list.addAll(bean.newslist.news);
                            adapter.notifyDataSetChanged();
                            pull_refresh_list.onRefreshComplete();
                        }
                    }else{
                        if(adapter==null){
                            list = bean.newslist.news;
                            adapter=new MyAdapter(mainActivity, list);
                            listView.setAdapter(adapter);
                            pull_refresh_list.onRefreshComplete();
                        }else{
    //                        list.addAll(bean.newslist.news);
                            LinkedList<Newss> list2 = bean.newslist.news;
                            for (Newss newss : list2) {
                                list.addFirst(newss);
                            }
                            adapter.notifyDataSetChanged();
                            pull_refresh_list.onRefreshComplete();
                        }
                    }
                }
            });
        }
        
        private class GetDataTask extends AsyncTask<Void, Void, String[]> {
            
            @Override
            protected String[] doInBackground(Void... params) {
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(String[] result) {
                getInfo();
                super.onPostExecute(result);
            }
        }
        @Override
        public void onStop() {
            super.onStop();
            if (adapter!=null) {
                adapter=null;
            }
        }
        @Override
        public void onDestroy() {
            super.onDestroy();
            
        }
    }

    package com.bwie.fragment;

    import java.util.ArrayList;
    import java.util.LinkedList;

    import com.bwie.adapter.MyAdapter;
    import com.bwie.bean.Bean;
    import com.bwie.bean.Bean.Newss;
    import com.bwie.test.MainActivity;
    import com.bwie.test.R;
    import com.handmark.pulltorefresh.library.ILoadingLayout;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
    import com.handmark.pulltorefresh.library.PullToRefreshBase;
    import com.handmark.pulltorefresh.library.PullToRefreshListView;
    import com.lidroid.xutils.HttpUtils;
    import com.lidroid.xutils.exception.HttpException;
    import com.lidroid.xutils.http.ResponseInfo;
    import com.lidroid.xutils.http.callback.RequestCallBack;
    import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
    import com.thoughtworks.xstream.XStream;
    import com.thoughtworks.xstream.io.xml.DomDriver;

    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.text.format.DateUtils;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ListView;
    import android.widget.Toast;

    public class Fragment2 extends Fragment {
        
        private View view;
        private PullToRefreshListView pull_refresh_list;
        private MyAdapter adapter;
        private int index=1;
        private MainActivity mainActivity;
        private ListView listView;
        protected ArrayList<Newss> list;
        
        @Override
        public View onCreateView(LayoutInflater inflater,
                @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            view = inflater.inflate(R.layout.frag1, container, false);
            pull_refresh_list=(PullToRefreshListView)view.findViewById(R.id.lv_view);
            listView = pull_refresh_list.getRefreshableView();
            getInfo();
            return view;
        }
        
        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            pull_refresh_list.setMode(Mode.BOTH);
            pull_refresh_list.getLoadingLayoutProxy(false, true).setPullLabel(
                    "上拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(false, true).setReleaseLabel(
                    "松开加载...");
            pull_refresh_list.getLoadingLayoutProxy(false, true)
                    .setRefreshingLabel("正在加载...");
            // 设置上拉刷新文本
            pull_refresh_list.getLoadingLayoutProxy(true, false).setPullLabel(
                    "下拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false).setReleaseLabel(
                    "放开刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false)
                    .setRefreshingLabel("正在加载...");
            mainActivity = (MainActivity) getActivity();
            // 下拉刷新监听
            // Set a listener to be invoked when the list should be refreshed.下拉刷新处理
            pull_refresh_list
                    .setOnRefreshListener(new OnRefreshListener<ListView>() { // 2
                        @Override
                        public void onRefresh(
                                PullToRefreshBase<ListView> refreshView) {
                            index++;
                            String label = DateUtils.formatDateTime(
                                    getActivity(),
                                    System.currentTimeMillis(),
                                    DateUtils.FORMAT_SHOW_TIME
                                            | DateUtils.FORMAT_SHOW_DATE
                                            | DateUtils.FORMAT_ABBREV_ALL);
                            refreshView.getLoadingLayoutProxy()
                                    .setLastUpdatedLabel(label);// 3.刷新界面处理代理,显示新的时间
                            new GetDataTask().execute(); // 4.执行自定义AsyncTask,进行数据的请求刷新
                        }
                    });
            super.onActivityCreated(savedInstanceState);
        }
        
        private void getInfo() {
            HttpUtils utils=new HttpUtils();
            utils.send(HttpMethod.GET,"http://www.oschina.net/action/api/news_list?catalog=4&pageIndex="+index+"&pageSize=10&show=week",new RequestCallBack<String>() {
                
                @Override
                public void onFailure(HttpException arg0, String arg1) {
                    Toast.makeText(mainActivity, "请求失败",0).show();
                }
                
                @Override
                public void onSuccess(ResponseInfo<String> arg0) {
                    String xml=arg0.result;
                    XStream stream=new XStream(new DomDriver());
                    stream.processAnnotations(Bean.class);
                    Bean bean = (Bean) stream.fromXML(xml);
                    if(adapter==null){
    //                    list = bean.newslist.news;
    //                    adapter=new MyAdapter(mainActivity, list);
                        listView.setAdapter(adapter);
                        pull_refresh_list.onRefreshComplete();
                    }else{
                        list.addAll(bean.newslist.news);
                        adapter.notifyDataSetChanged();
                        pull_refresh_list.onRefreshComplete();
                    }
                }
            });
        }
        
        private class GetDataTask extends AsyncTask<Void, Void, String[]> {
            
            @Override
            protected String[] doInBackground(Void... params) {
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(String[] result) {
                getInfo();
                super.onPostExecute(result);
            }
        }
        @Override
        public void onStop() {
            // TODO Auto-generated method stub
            super.onStop();
            if (adapter!=null) {
                adapter=null;
            }
        }
        @Override
        public void onDestroy() {
            super.onDestroy();
            if (adapter!=null) {
                adapter=null;
            }
        }
    }

    package com.bwie.fragment;

    import java.util.ArrayList;

    import com.bwie.adapter.MyAdapter;
    import com.bwie.adapter.MyAdapter2;
    import com.bwie.bean.Bean;
    import com.bwie.bean.Bean.Newss;
    import com.bwie.bean.Bean2;
    import com.bwie.bean.Bean2.Blogs;
    import com.bwie.bean.Bean2.Blogss;
    import com.bwie.test.MainActivity;
    import com.bwie.test.R;
    import com.handmark.pulltorefresh.library.ILoadingLayout;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
    import com.handmark.pulltorefresh.library.PullToRefreshBase;
    import com.handmark.pulltorefresh.library.PullToRefreshListView;
    import com.lidroid.xutils.HttpUtils;
    import com.lidroid.xutils.exception.HttpException;
    import com.lidroid.xutils.http.ResponseInfo;
    import com.lidroid.xutils.http.callback.RequestCallBack;
    import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
    import com.thoughtworks.xstream.XStream;
    import com.thoughtworks.xstream.io.xml.DomDriver;

    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.text.format.DateUtils;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ListView;
    import android.widget.Toast;

    public class Fragment3 extends Fragment {
        
        private View view;
        private PullToRefreshListView pull_refresh_list;
        private MyAdapter2 adapter;
        private int index=1;
        private MainActivity mainActivity;
        private ListView listView;
        protected ArrayList<Blogss> list;
        
        @Override
        public View onCreateView(LayoutInflater inflater,
                @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            view = inflater.inflate(R.layout.frag1, container, false);
            pull_refresh_list=(PullToRefreshListView)view.findViewById(R.id.lv_view);
            listView = pull_refresh_list.getRefreshableView();
            return view;
        }
        
        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            pull_refresh_list.setMode(Mode.BOTH);
            pull_refresh_list.getLoadingLayoutProxy(false, true).setPullLabel(
                    "上拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(false, true).setReleaseLabel(
                    "松开加载...");
            pull_refresh_list.getLoadingLayoutProxy(false, true)
                    .setRefreshingLabel("正在加载...");
            // 设置上拉刷新文本
            pull_refresh_list.getLoadingLayoutProxy(true, false).setPullLabel(
                    "下拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false).setReleaseLabel(
                    "放开刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false)
                    .setRefreshingLabel("正在加载...");
            mainActivity = (MainActivity) getActivity();
            // 下拉刷新监听
            // Set a listener to be invoked when the list should be refreshed.下拉刷新处理
            pull_refresh_list
                    .setOnRefreshListener(new OnRefreshListener<ListView>() { // 2
                        @Override
                        public void onRefresh(
                                PullToRefreshBase<ListView> refreshView) {
                            index++;
                            String label = DateUtils.formatDateTime(
                                    getActivity(),
                                    System.currentTimeMillis(),
                                    DateUtils.FORMAT_SHOW_TIME
                                            | DateUtils.FORMAT_SHOW_DATE
                                            | DateUtils.FORMAT_ABBREV_ALL);
                            refreshView.getLoadingLayoutProxy()
                                    .setLastUpdatedLabel(label);// 3.刷新界面处理代理,显示新的时间
                            new GetDataTask().execute(); // 4.执行自定义AsyncTask,进行数据的请求刷新
                        }
                    });
            getInfo();
            super.onActivityCreated(savedInstanceState);
        }

        private void getInfo() {
            HttpUtils utils=new HttpUtils();
            utils.send(HttpMethod.GET,"http://www.oschina.net/action/api/blog_list?type=latest&pageIndex="+index+"&pageSize=10",new RequestCallBack<String>() {
                
                @Override
                public void onFailure(HttpException arg0, String arg1) {
                    Toast.makeText(mainActivity, "请求失败",0).show();
                }
                
                @Override
                public void onSuccess(ResponseInfo<String> arg0) {
                    String xml=arg0.result;
                    XStream stream=new XStream(new DomDriver());
                    stream.processAnnotations(Bean2.class);
                    Bean2 bean = (Bean2) stream.fromXML(xml);
                    if(adapter==null){
    //                    list = bean.blogs.blog;
                        adapter=new MyAdapter2(list, mainActivity);
                        listView.setAdapter(adapter);
                        pull_refresh_list.onRefreshComplete();
                    }else{
                        list.addAll(bean.blogs.blog);
                        adapter.notifyDataSetChanged();
                        pull_refresh_list.onRefreshComplete();
                    }
                }
            });
        }
        
        private class GetDataTask extends AsyncTask<Void, Void, String[]> {
            
            @Override
            protected String[] doInBackground(Void... params) {
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(String[] result) {
                getInfo();
                super.onPostExecute(result);
            }
        }
        @Override
        public void onStop() {
            // TODO Auto-generated method stub
            super.onStop();
            if (adapter!=null) {
                adapter=null;
            }
        }
        @Override
        public void onDestroy() {
            super.onDestroy();
            if (adapter!=null) {
                adapter=null;
            }
        }
    }

    package com.bwie.fragment;

    import java.util.ArrayList;

    import com.bwie.adapter.MyAdapter;
    import com.bwie.adapter.MyAdapter2;
    import com.bwie.bean.Bean;
    import com.bwie.bean.Bean.Newss;
    import com.bwie.bean.Bean2;
    import com.bwie.bean.Bean2.Blogs;
    import com.bwie.bean.Bean2.Blogss;
    import com.bwie.test.MainActivity;
    import com.bwie.test.R;
    import com.handmark.pulltorefresh.library.ILoadingLayout;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
    import com.handmark.pulltorefresh.library.PullToRefreshBase;
    import com.handmark.pulltorefresh.library.PullToRefreshListView;
    import com.lidroid.xutils.HttpUtils;
    import com.lidroid.xutils.exception.HttpException;
    import com.lidroid.xutils.http.ResponseInfo;
    import com.lidroid.xutils.http.callback.RequestCallBack;
    import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
    import com.thoughtworks.xstream.XStream;
    import com.thoughtworks.xstream.io.xml.DomDriver;

    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentActivity;
    import android.text.format.DateUtils;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ListView;
    import android.widget.Toast;

    public class Fragment4 extends Fragment {
        
        private View view;
        private PullToRefreshListView pull_refresh_list;
        private MyAdapter2 adapter;
        private int index=1;
        private MainActivity mainActivity;
        private ListView listView;
        protected ArrayList<Blogss> list;
        
        @Override
        public View onCreateView(LayoutInflater inflater,
                @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            view = inflater.inflate(R.layout.frag1, container, false);
            pull_refresh_list=(PullToRefreshListView)view.findViewById(R.id.lv_view);
            listView = pull_refresh_list.getRefreshableView();
            return view;
        }
        
        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            pull_refresh_list.setMode(Mode.BOTH);
            pull_refresh_list.getLoadingLayoutProxy(false, true).setPullLabel(
                    "上拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(false, true).setReleaseLabel(
                    "松开加载...");
            pull_refresh_list.getLoadingLayoutProxy(false, true)
                    .setRefreshingLabel("正在加载...");
            // 设置上拉刷新文本
            pull_refresh_list.getLoadingLayoutProxy(true, false).setPullLabel(
                    "下拉刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false).setReleaseLabel(
                    "放开刷新...");
            pull_refresh_list.getLoadingLayoutProxy(true, false)
                    .setRefreshingLabel("正在加载...");
            mainActivity = (MainActivity) getActivity();
            // 下拉刷新监听
            // Set a listener to be invoked when the list should be refreshed.下拉刷新处理
            pull_refresh_list
                    .setOnRefreshListener(new OnRefreshListener<ListView>() { // 2
                        @Override
                        public void onRefresh(
                                PullToRefreshBase<ListView> refreshView) {
                            index++;
                            String label = DateUtils.formatDateTime(
                                    getActivity(),
                                    System.currentTimeMillis(),
                                    DateUtils.FORMAT_SHOW_TIME
                                            | DateUtils.FORMAT_SHOW_DATE
                                            | DateUtils.FORMAT_ABBREV_ALL);
                            refreshView.getLoadingLayoutProxy()
                                    .setLastUpdatedLabel(label);// 3.刷新界面处理代理,显示新的时间
                            new GetDataTask().execute(); // 4.执行自定义AsyncTask,进行数据的请求刷新
                        }
                    });
            getInfo();
            super.onActivityCreated(savedInstanceState);
        }

        private void getInfo() {
            HttpUtils utils=new HttpUtils();
            utils.send(HttpMethod.GET,"http://www.oschina.net/action/api/blog_list?type=recommend&pageIndex="+index+"&pageSize=10",new RequestCallBack<String>() {
                
                @Override
                public void onFailure(HttpException arg0, String arg1) {
                    Toast.makeText(mainActivity, "请求失败",0).show();
                }
                
                @Override
                public void onSuccess(ResponseInfo<String> arg0) {
                    String xml=arg0.result;
                    XStream stream=new XStream(new DomDriver());
                    stream.processAnnotations(Bean2.class);
                    Bean2 bean = (Bean2) stream.fromXML(xml);
                    if(adapter==null){
    //                    list = bean.blogs.blog;
                        adapter=new MyAdapter2(list, mainActivity);
                        listView.setAdapter(adapter);
                        pull_refresh_list.onRefreshComplete();
                    }else{
                        list.addAll(bean.blogs.blog);
                        adapter.notifyDataSetChanged();
                        pull_refresh_list.onRefreshComplete();
                    }
                }
            });
        }
        
        private class GetDataTask extends AsyncTask<Void, Void, String[]> {
            
            @Override
            protected String[] doInBackground(Void... params) {
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(String[] result) {
                getInfo();
                super.onPostExecute(result);
            }
        }
        @Override
        public void onStop() {
            // TODO Auto-generated method stub
            super.onStop();
            if (adapter!=null) {
                adapter=null;
            }
        }
        @Override
        public void onDestroy() {
            super.onDestroy();
            if (adapter!=null) {
                adapter=null;
            }
        }
    }

    package com.bwie.adapter;

    import java.util.ArrayList;
    import java.util.LinkedList;

    import com.bwie.bean.Bean.Newss;
    import com.bwie.test.R;

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

    public class MyAdapter extends BaseAdapter {

        private Context context;
        private LinkedList<Newss> list;
        private TextView tv_title;
        private TextView tv_body;
        
        public MyAdapter(Context context, LinkedList<Newss> list2) {
            super();
            this.context = context;
            this.list = list2;
        }
        
        @Override
        public int getCount() {
            return list.size();
        }
        
        @Override
        public Object getItem(int position) {
            return null;
        }
        
        @Override
        public long getItemId(int position) {
            return 0;
        }
        
        @SuppressLint("ViewHolder")
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            convertView=View.inflate(context, R.layout.frag1_item,null);
            tv_title=(TextView)convertView.findViewById(R.id.tv_title);
            tv_body=(TextView)convertView.findViewById(R.id.tv_body);
            tv_title.setText(list.get(position).title);
            tv_body.setText(list.get(position).body);
            return convertView;
        }

    }

    package com.bwie.adapter;

    import java.util.ArrayList;

    import com.bwie.bean.Bean2.Blogs;
    import com.bwie.bean.Bean2.Blogss;
    import com.bwie.test.R;

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

    public class MyAdapter2 extends BaseAdapter {

        protected ArrayList<Blogss> list;
        private Context context;
        private TextView tv_title;
        private TextView tv_body;
        
        public MyAdapter2(ArrayList<Blogss> list, Context context) {
            super();
            this.list = list;
            this.context = context;
        }

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

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

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            convertView=View.inflate(context, R.layout.frag1_item,null);
            tv_title=(TextView)convertView.findViewById(R.id.tv_title);
            tv_body=(TextView)convertView.findViewById(R.id.tv_body);
            tv_title.setText(list.get(position).title);
            tv_body.setText(list.get(position).body);
            return convertView;
        }

    }

    main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.bwie.test.MainActivity" >

        <RadioGroup
            android:id="@+id/rg_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <RadioButton
                android:id="@+id/rb_btn1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center_horizontal"
                android:text="咨询"
                android:textColor="#0f0"/>

            <RadioButton
                android:id="@+id/rb_btn2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center_horizontal"
                android:text="热点" />

            <RadioButton
                android:id="@+id/rb_btn3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center_horizontal"
                android:text="博客" />

            <RadioButton
                android:id="@+id/rb_btn4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:button="@null"
                android:gravity="center_horizontal"
                android:text="推荐" />
        </RadioGroup>
        
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
            
            <View
                android:id="@+id/view1"
                android:layout_width="wrap_content"
                android:layout_height="1dp"
                android:layout_weight="1"
                android:gravity="center_horizontal"
                android:background="#0f0"/>
                
            <View
                android:id="@+id/view2"
                android:layout_width="wrap_content"
                android:layout_height="1dp"
                android:layout_weight="1"
                android:gravity="center_horizontal" />

            <View
                android:id="@+id/view3"
                android:layout_width="wrap_content"
                android:layout_height="1dp"
                android:layout_weight="1"
                android:gravity="center_horizontal" />

            <View
                android:id="@+id/view4"
                android:layout_width="wrap_content"
                android:layout_height="1dp"
                android:layout_weight="1"
                android:gravity="center_horizontal" />
        </LinearLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </LinearLayout>

    frag1_item.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_margin="20dp">
        
        <TextView
            android:id="@+id/tv_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="世界如此"
            android:textStyle="bold"/>
        
        <TextView
            android:id="@+id/tv_body"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="世界如此多娇"/>
    </LinearLayout>

    frag1.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        
        <com.handmark.pulltorefresh.library.PullToRefreshListView
            android:id="@+id/lv_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
            
    </LinearLayout>

  • 相关阅读:
    指定的参数已超出有效值的范围。参数名:sit ,先仔细看看错误和我的一样不一样
    简单说下C#变量的作用域
    C#常用的字符串处理方法
    驼峰命名、帕斯卡命名、匈牙利命名--三种命名方法
    Python的安装
    Python下numpy的使用
    命名法:骆驼(Camel)、帕斯卡(pascal)、匈牙利(Hungarian)、下划线(_)
    PHP中高级面试问题集锦
    利用python,生成word
    python实现网页截图
  • 原文地址:https://www.cnblogs.com/cuizhe/p/5356949.html
Copyright © 2011-2022 走看看