Android中通过ViewPager实现左右滑屏(下)

使用实例3

.代码片段1

 

        if(imgUrls.size()>1){
            position = position +200* imgUrls.size();
        }
viewPager.setCurrentItem(position);
代码片段2
    private class MyPagerAdapter extends PagerAdapter {

 

 
        @Override
        publicvoid destroyItem(View view,int i,Objectobject){
            ViewPager viewPager =(ViewPager) view;
            View view2 =(View)object;
            viewPager.removeView(view2);
        }
 
        @Override
        publicvoid finishUpdate(View arg0){
        }
 
        @Override
        publicint getCount(){
            if(imgUrls !=null){
                if(imgUrls.size()>1){
                    returnInteger.MAX_VALUE;
                }else{
                    return imgUrls.size();
                }
            }
            return0;
        }
 
        @Override
        publicObject instantiateItem(View view,int i){
            i = i % imgUrls.size();
            ViewPager viewPager =(ViewPager) view;
            View view2 = getView(i, imgUrls, context);
            viewPager.addView(view2);
            return view2;
        }
 
        @Override
        publicboolean isViewFromObject(View view,Objectobject){
            return view ==object;
        }
 
        @Override
        publicvoid restoreState(Parcelable arg0,ClassLoader arg1){
        }
 
        @Override
        publicParcelable saveState(){
            returnnull;
        }
 
        @Override
        publicvoid startUpdate(View arg0){
        }
 
    }
代码片段3

 

    publicView getView(int position,List<String> urls,Context context){
        View view =null;
        int size = urls.size();
        position = position % size;
        LayoutInflater inflater =LayoutInflater.from(context);
        view = inflater.inflate(R.layout.page_item,null);
        ImageUtil.setDrawable(view, urls.get(position));
        return view;
    }
如果我们在多个Activity之间进行左右滑动,那么可以采用如下的代码获得View,以实现在多个Activity之间进行左右滑动
    privateView getView(String id,Class<?> clazz,Serializable data){
        Intent intent =newIntent();
        Bundle bundle =newBundle();
        bundle.putSerializable("data",data);
        intent.putExtras(bundle);
        intent.setClass(this, clazz);
        /*getLocalActivityManager是ActivityGroup的一个方法*/
        return getLocalActivityManager().startActivity(id, intent).getDecorView();
    }
结束!
posted @ 2014-05-16 17:58  huidaoli  阅读(167)  评论(0)    收藏  举报