XListView+ViewPager

来源:互联网 发布:warframe防火墙端口 编辑:程序博客网 时间:2024/06/11 23:55
public class MainActivity extends AppCompatActivity {//=============Viewpager===========    ViewPager  vp;    TextView  tv;    RadioGroup  rg;//===========list============    Been      been;    List<Been.StoriesBean>   list;    Mylistadapter   lvadapter;//=============vp+list ===========    XListView xlv;    List<ViewPager>  vplist;    View view;    int n=2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(this);        ImageLoader.getInstance().init(configuration);        DisplayImageOptions options=DisplayImageOptions.createSimple();        //===========viewpager的控件==========        vp=(ViewPager) findViewById(R.id.vp);        tv=(TextView) findViewById(R.id.tv);        rg=(RadioGroup) findViewById(R.id.rg);       //===============listview的控件        xlv= (XListView) findViewById(R.id.xlv);        list=new ArrayList<Been.StoriesBean>();        intoData(1);        //xlistview设置一下        xlv.setPullLoadEnable(true);//这个是允许下拉加载        xlv.setPullRefreshEnable(true);//允许下拉刷新        //xlv的监听        xlv.setXListViewListener(new XListView.IXListViewListener() {            @Override            //刷新            public void onRefresh() {                //再次调用方法                intoData(1);                //刷新                lvadapter.notifyDataSetChanged();                //停止刷新图片的使用                xlv.stopRefresh();            }           //加载            @Override            public void onLoadMore() {                //n的依次相加                n++;                //依次相加n                intoData(n);                //停止加载图片的使用                xlv.stopLoadMore();            }        });        lvadapter=new Mylistadapter();        xlv.setAdapter(lvadapter);        vp.setAdapter(new Myadapter(getSupportFragmentManager()));        //vp的监听事件        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {                switch (position)                {                    case 0:                        rg.check(R.id.b1);                        tv.setText("头条新闻1");                        break;                    case 1:                        rg.check(R.id.b2);                        tv.setText("头条新闻2");                        break;                    case 2:                        rg.check(R.id.b3);                        tv.setText("头条新闻3");                        break;                    case 3:                        rg.check(R.id.b4);                        tv.setText("头条新闻4");                        break;                }            }            @Override            public void onPageSelected(int position) {            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        //==============vp+list===========        xlv=(XListView) findViewById(R.id.xlv);    }//创建vp的适配器    class Myadapter extends FragmentPagerAdapter{        public Myadapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            Fragment fm=null;            switch (position)            {                case 0:                    fm=new Fragment1();                    break;                case 1:                    fm=new Fragment2();                    break;                case 2:                    fm=new Fragment3();                    break;                case 3:                    fm=new Fragment4();                    break;            }            return fm;        }        @Override        public int getCount() {            return 4;        }    }//===============lv的操作================    class  Mylistadapter extends BaseAdapter{    @Override    public int getCount() {        if(list!=null)        {            return  list.size();        }        return 0;    }    @Override    public Object getItem(int i) {        return null;    }    @Override    public long getItemId(int i) {        return 0;    }    @Override    public View getView(final  int i, View view, ViewGroup viewGroup) {        ViewHolder holder;        if(view==null)        {            holder=new ViewHolder();            view=View.inflate(MainActivity.this,R.layout.lv_item,null);            holder.iv=(ImageView) view.findViewById(R.id.iv123);            holder.title=(TextView) view.findViewById(R.id.title111);            holder.ga_prefix=(TextView) view.findViewById(R.id.ga_prefix);            view.setTag(holder);        }else {            holder=(ViewHolder) view.getTag();        }        holder.title.setText(list.get(i).getTitle());        holder.ga_prefix.setText(list.get(i).getGa_prefix());        ImageLoader.getInstance().displayImage(list.get(i).getImages().get(0),holder.iv);        return view;    }}    class ViewHolder{        ImageView  iv;        TextView   title;        TextView   ga_prefix;    }    //方法    private void intoData(final int n){        new AsyncTask<String,String,String>(){            @Override            protected String doInBackground(String... strings) {                String str=getUrl();                return str;            }            @Override            protected void onPostExecute(String s) {                Gson gson=new Gson();                been=gson.fromJson(s,Been.class);                //判断n的数值                if(n!=1){                    //拼接集合                    list.addAll(been.getStories());                }else{                    //第一次的集合实例化                    list=been.getStories();                }                lvadapter.notifyDataSetChanged();                super.onPostExecute(s);            }        }.execute();    }//创建解析网址的方法    private String getUrl(){        String strUlr="";        try {            URL url=new URL("https://news-at.zhihu.com/api/4/news/latest");            HttpURLConnection connection=(HttpURLConnection) url.openConnection();            connection.setRequestMethod("GET");            int code=connection.getResponseCode();            if(code==200)            {                InputStream  inputStream=connection.getInputStream();                ByteArrayOutputStream bos=new ByteArrayOutputStream();                int len=-1;                byte[] b=new byte[1024];                while ((len=inputStream.read(b))!=-1){                    bos.write(b,0,len);                }                strUlr=new String(bos.toByteArray());            }        } catch (Exception e) {            e.printStackTrace();        }        return   strUlr;    }
原创粉丝点击