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; }
XListView+ViewPager
最新推荐文章于 2018-11-11 16:05:53 发布