Viewpager加ListView解析

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加ListView
public 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;
    }
}
//MyApp
public class MyApp extends Application{
    @Override
    public void onCreate() {
        super.onCreate( );
        ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(this);
        ImageLoader.getInstance().init(configuration);
    }
}
//ViewPager
public 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();
        }
    }
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值