您的位置:首页 > 移动开发 > Android开发

android viewpage用法及适配器

2016-03-08 16:34 736 查看
1,定义adaoper(适配器)

public class viewPageAdapter extends PagerAdapter {

private List<View> listView;

public viewPageAdapter(List<View> listView ){

this.listView = listView;

}

@Override

public Object instantiateItem(ViewGroup container, int position) {

// TODO Auto-generated method stub

((ViewPager)container).addView(listView.get(position));

Log.i("instantiateItem", "position="+position);

return listView.get(position);

}

@Override

public void destroyItem(View container, int position, Object object) {

// TODO Auto-generated method stub

Log.i("destroyItem", "position="+position);

((ViewGroup)container).removeView(listView.get(position));

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return listView.size();

}

@Override

public boolean isViewFromObject(View arg0, Object arg1) {

// TODO Auto-generated method stub

return arg0 == arg1;

}

}

2,layout中写布局,要导入v4包

<android.support.v4.view.ViewPager

android:id="@+id/VP_viewpage"

android:layout_width="match_parent"

android:layout_centerHorizontal="true"

android:layout_height="400dp"

android:focusable="false"

android:layout_marginTop="190dp">

</android.support.v4.view.ViewPager>

3,activity中引用

/*viewpage*/

private ViewPager VP_viewpage;

private viewPageAdapter mViewPageAdapter;

private List<View> listVew;

private View page1;

private View RL_page1;

private View page2;

private View page3;

private View page4;

private int currentPage = 0;

/*初始化viewpage*/

private void viewpageListen(){

VP_viewpage = (ViewPager)findViewById(R.id.VP_viewpage);

VP_viewpage.setOnPageChangeListener(this);

VP_viewpage.setOnFocusChangeListener(this);

page1 = LayoutInflater.from(this).inflate(R.layout.page1, null);

page2 = LayoutInflater.from(this).inflate(R.layout.page2, null);

page3 = LayoutInflater.from(this).inflate(R.layout.page3, null);

page4 = LayoutInflater.from(this).inflate(R.layout.page4, null);

IM_first = (ImageView) page1.findViewById(R.id.IM_first);//对应的page中的控件找id

TV_inputSourceType = (TextView)page2.findViewById(R.id.TV_inputSourceType);

listVew= new ArrayList<View>();

listVew.add(page1);

listVew.add(page2);

listVew.add(page3);

listVew.add(page4);

mViewPageAdapter = new viewPageAdapter(listVew);

VP_viewpage.setAdapter(mViewPageAdapter);

VP_viewpage.setCurrentItem(0);

viewpageListen();

}

/*获取数据*/

private List<Map<String, Object>> getListviewData(){

listviewData = new ArrayList<Map<String,Object>>();

Map<String, Object> map;

for (int i = 0; i < img.length; i++) {//此处是一个image数组

map = new HashMap<String, Object>();

map.put("img", img[i]);

listviewData.add(map);

}

return listviewData;

}

/*viewpage内部控件监听*/

private void viewpageListen(){

IM_first.setOnClickListener(this);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: