實現步驟
1 佈局文件添加 android.support.v4.view.ViewPager確定區域
<android.support.v4.view.ViewPager
android:id="@+id/main_viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_gravity="center"
android:persistentDrawingCache="animation" />
2 創建ViewPager mViewPager對象
mViewPager = (ViewPager)findViewById(R.id.main_viewPager);
3 創建HashMap<String, Object> map容器
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.main_btn_radio);// 添加圖像資源的ID
map.put("ItemText", getString(R.string.Radio).toString());// 按序號做ItemText
4 創建ArrayList<HashMap<String, Object>> lstImageItem
把HashMap對象添加到ArrayList中 ,即lstImageItem.add(map);
如果是八宮格需添加八個HashMap對象到ArrayList中,如此類推!
5 創建SimpleAdapter saImageItems對象
SimpleAdapter saImageItems = new SimpleAdapter(this,
lstImageItem,// 數據列表
R.layout.item,// 每個宮格的佈局
new String[] { "ItemImage", "ItemText" },// 動態數組與ImageItem對應的子項
new int[] { R.id.item_imageButton1, R.id.item_textView1 });// ImageItem的XML文件裏面的一個ImageView,一個TextView ID
6 創建GridView gridview對象,把saImageItems 設置爲gridview的接口
gridview.setAdapter(saImageItems);
gridview.setNumColumns(4);
gridview.setOnItemClickListener(this);
gridview.setOnTouchListener(this);
7 創建ArrayList<View> mViewList對象,把gridview添加到ArrayList<View>中
ArrayList<View> mViewList = new ArrayList<View>();
mViewList.add(gridview); //此時是一頁的數據
8 創建PagerAdapter mPagerAdapter對象,把ArrayList<View>的數據給PagerAdapter調用
//ViewPager適配器
mPagerAdapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return mViewList.size();
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager)container).removeView(mViewList.get(position));
}
@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(mViewList.get(position));
return mViewList.get(position);
}
};
9 把PagerAdapter設置爲ViewPager 的接口
mViewPager.setAdapter(mPagerAdapter);
注意:PagerAdapter作爲ViewPager的適配器接口時
頁面初始化後需調用notifyDataSetChanged();通知數據改變!
mPagerAdapter.notifyDataSetChanged();
過程:(至上而下)
ViewPage--PagerAdapter--ArrayList<View>--gridview--SimpleAdapter--ArrayList<HashMap<String, Object>>--HashMap<String, Object>