public class DataUtil { public static String GetImg(){ String result=null; try { URL url=new URL("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=banner"); HttpURLConnection conn= (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); int code=conn.getResponseCode(); if (code==200) { InputStream is=conn.getInputStream(); ByteArrayOutputStream bos=new ByteArrayOutputStream(); int len=-1; byte[] buff=new byte[1024]; while ((len=is.read(buff))!=-1) { bos.write(buff,0,len); } result=new String(bos.toByteArray()); } } catch (Exception e) { e.printStackTrace( ); } return result; } //Viewpager加ListViewpublic class One extends Fragment{ ViewPager vp; ListView lv; News_img newimg; News_tilte newtitle; List<ImageView> list; Handler hanlder=new Handler(); private MyAdpter myadpter; int index=0; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=View.inflate(getActivity(), R.layout.one,null); vp= (ViewPager) view.findViewById(R.id.one_vp); lv= (ListView) view.findViewById(R.id.lv); initData(); initDatavp(); myadpter = new MyAdpter(); lv.setAdapter(myadpter); return view; } private void initDatavp() { new AsyncTask<String,String,String>() { @Override protected String doInBackground(String... strings) { String result=DataUtil.GetImg(); return result; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); Log.i("====================", "onPostExecute: " + s); newimg=gson.fromJson(s,News_img.class); initVp(); super.onPostExecute(s); } }.execute(); } private void initVp() { list=new ArrayList<ImageView>(); for (int i=0;i<newimg.getBanner().size();i++) { ImageView iv=new ImageView(getActivity()); String url=newimg.getBanner().get(i).getImage_url(); iv.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(url,iv); list.add(iv); } MyVpadpter myvp=new MyVpadpter(); vp.setAdapter(myvp); vp.setCurrentItem(list.size()*10); } private void initData() { new AsyncTask<String,String,String>() { @Override protected String doInBackground(String... strings) { String result= DataUtil.GetTitle(); return result; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); newtitle=gson.fromJson(s,News_tilte.class); myadpter.notifyDataSetChanged(); super.onPostExecute(s); } }.execute(); } class MyAdpter extends BaseAdapter{ @Override public int getCount() { if (newtitle!=null) { return newtitle.getData().size(); } return 0; } @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) { ViewHolder holder; if(view==null){ view=View.inflate(getActivity(),R.layout.item,null); holder=new ViewHolder(); holder.tv_title= (TextView) view.findViewById(R.id.tv_title); holder.tv_nr= (TextView) view.findViewById(R.id.tv_content); holder.iv= (ImageView) view.findViewById(R.id.img); view.setTag(holder); }else{ holder= (ViewHolder) view.getTag(); } holder.tv_title.setText(newtitle.getData().get(i).getTitle()); holder.tv_nr.setText(newtitle.getData().get(i).getContent()); String url = newtitle.getData().get(i).getImage_url(); ImageLoader.getInstance().displayImage(url,holder.iv); return view; } } static class ViewHolder{ TextView tv_title,tv_nr; ImageView iv; } class MyVpadpter extends PagerAdapter{ @Override public int getCount() { if (list!=null) { return Integer.MAX_VALUE; } return 0; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { int index=position%list.size(); container.addView(list.get(index)); return list.get(index); } } } //频道public class Two extends Fragment{ GridView gv_wd,gv_gd; News_table news_table; List<View> list; private MyAdpter adpter; private MyAdpter1 adpter1; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=View.inflate(getActivity(), R.layout.two,null); gv_gd= (GridView) view.findViewById(R.id.gv_gd); gv_wd= (GridView) view.findViewById(R.id.gv_wd); initData(); adpter = new MyAdpter(); gv_wd.setAdapter(adpter); adpter1 = new MyAdpter1(); gv_gd.setAdapter(adpter1); gv_wd.setOnItemClickListener(new AdapterView.OnItemClickListener( ) { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Toast.makeText(getActivity(),""+news_table.getChannel().get(i).getChannel_me(),Toast.LENGTH_LONG).show(); String s=news_table.getChannel().get(i).getChannel_me(); } }); return view; } private void initData() { new AsyncTask<String,String,String>() { @Override protected String doInBackground(String... strings) { String result= DataUtil.GetTab(); return result; } @Override protected void onPostExecute(String s) { Gson gson=new Gson(); news_table=gson.fromJson(s,News_table.class); adpter.notifyDataSetChanged(); adpter1.notifyDataSetChanged(); super.onPostExecute(s); } }.execute(); } class MyAdpter extends BaseAdapter{ @Override public int getCount() { if (news_table!=null) { return news_table.getChannel().size(); } return 0; } @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) { ViewHolder holder; if (view==null) { view=View.inflate(getActivity(),R.layout.items,null); holder=new ViewHolder(); holder.tv_name= (TextView) view.findViewById(R.id.tv_name); view.setTag(holder); } else { holder= (ViewHolder) view.getTag(); } holder.tv_name.setText(news_table.getChannel().get(i).getChannel_me()); return view; } } class ViewHolder{ TextView tv_name; } class MyAdpter1 extends BaseAdapter{ @Override public int getCount() { if (news_table!=null) { return news_table.getChannel().size(); } return 0; } @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) { ViewHolder1 holder1; if (view==null) { view=View.inflate(getActivity(),R.layout.items,null); holder1=new ViewHolder1(); holder1.tv_name1= (TextView) view.findViewById(R.id.tv_name); view.setTag(holder1); } else { holder1= (ViewHolder1) view.getTag(); } holder1.tv_name1.setText(news_table.getChannel().get(i).getChannel_more()); return view; } } class ViewHolder1{ TextView tv_name1; } }//MyApppublic class MyApp extends Application{ @Override public void onCreate() { super.onCreate( ); ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(this); ImageLoader.getInstance().init(configuration); } } //ViewPagerpublic class MainActivity extends FragmentActivity { List<Fragment> list; ViewPager vp; RadioGroup rg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp= (ViewPager) findViewById(R.id.main_vp); rg= (RadioGroup) findViewById(R.id.rg); initData(); MyAdpter myadpter =new MyAdpter(getSupportFragmentManager()); vp.setAdapter(myadpter); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener( ) { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { switch (position) { case 0: rg.check(R.id.rb1); break; case 1: rg.check(R.id.rb2); break; } } @Override public void onPageScrollStateChanged(int state) { } }); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener( ) { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i) { case R.id.rb1: vp.setCurrentItem(0); break; case R.id.rb2: vp.setCurrentItem(1); break; } } }); } private void initData() { list=new ArrayList<Fragment>(); list.add(new One()); list.add(new Two()); } class MyAdpter extends FragmentPagerAdapter{ public MyAdpter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } } }
Viewpager加ListView解析
最新推荐文章于 2020-07-21 14:42:38 发布