博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
viewpager动态加载listView数据
阅读量:4502 次
发布时间:2019-06-08

本文共 5309 字,大约阅读时间需要 17 分钟。

package com.example.viewpage;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.annotation.SuppressLint;import android.app.Activity;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.os.Parcelable;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.util.DisplayMetrics;import android.util.Log;import android.view.View;import android.view.animation.Animation;import android.view.animation.TranslateAnimation;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.ListView;@SuppressLint({ "ParserError", "WrongViewCast", "ResourceAsColor" })public class MainActivity extends Activity  {    // VIewPaer控件    private ViewPager vp;    // VIewPager的数据源    private MyPagerAdapter myAdapter;    // 为VIewPager保存VIew界面的集合    private List
vessel = new ArrayList
(); private Map
> listData = new HashMap
>(); private List
dataListKey = new ArrayList
(); // 代表第一个和第2个界面 private View view1, view2; // 动画图片 private ImageView cursor; // 第2个窗体的ListVIew控件 private ListView list,list1; private int offset = 0;// 动画图片偏移量 private int currIndex = 0;// 当前页卡编号 private int bmpW;// 动画图片宽度 // ListView的数据集 private static List
userInfos; // listView右边的导航选项卡 private MySideBar myView; // ListView数据源 private static MyUserInfoAdapter adapter; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); InitImageView(); init(); } /** * 初始化控件和绑定事件 */ public void init() { dataListKey.add("1"); dataListKey.add("2"); dataListKey.add("3"); dataListKey.add("4"); dataListKey.add("5"); dataListKey.add("6"); dataListKey.add("7"); dataListKey.add("8"); for (int i = 0; i < dataListKey.size(); i++) { view1 = this.getLayoutInflater().inflate(R.layout.layout1, null); list1 = (ListView) view1.findViewById(R.id.LV); userInfos =getUserInfos(); adapter = new MyUserInfoAdapter(MainActivity.this, userInfos); list1.setAdapter(adapter); vessel.add(view1); } Log.e("viewpager", vessel.size()+""); vp = (ViewPager) findViewById(R.id.viewpagerLayout); myAdapter = new MyPagerAdapter(); vp.setAdapter(myAdapter); // 设置起始默认的值为0 vp.setCurrentItem(0); vp.setOnPageChangeListener(new MyOnPageChangeListener()); } /* * 初始化滑动条 */ private void InitImageView() { bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a).getWidth();// 获取图片宽度 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenW = dm.widthPixels;// 获取分辨率宽度 System.out.println("bmpw:" + bmpW + "screenW:" + screenW); offset = (screenW / 3 - bmpW) / 2;// 计算偏移量 Matrix matrix = new Matrix(); matrix.postTranslate(offset, 0); System.out.println("offset:" + offset); } // 适配器 class MyPagerAdapter extends PagerAdapter { public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(vessel.get(arg1)); } public void finishUpdate(View arg0) { } public int getCount() { return vessel.size(); } public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(vessel.get(arg1), 0); return vessel.get(arg1); } public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == (arg1); } public void restoreState(Parcelable arg0, ClassLoader arg1) { } public Parcelable saveState() { return null; } @Override public void startUpdate(View arg0) { } } /** * 页卡切换监听 */ public class MyOnPageChangeListener implements OnPageChangeListener { int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量 @Override public void onPageSelected(int arg0) { Animation animation = null; switch (arg0) { case 0: if (currIndex == 1) { animation = new TranslateAnimation(one, 0, 0, 0); }/* * else if (currIndex == 2) { animation = new * TranslateAnimation(two, 0, 0, 0); } */ break; case 1: if (currIndex == 0) { animation = new TranslateAnimation(offset, one, 0, 0); } /* * else if (currIndex == 2) { animation = new * TranslateAnimation(two, one, 0, 0); } */ break; /* * case 2: if (currIndex == 0) { animation = new * TranslateAnimation(offset, two, 0, 0); } else if (currIndex == 1) * { animation = new TranslateAnimation(one, two, 0, 0); } break; */ } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } } /** * 初始化加载listVIew所需要的数据 并进行排序和匹配 */ private List
getUserInfos() { List
userInfos = new ArrayList
(); userInfos.add(new UserInfo("唐僧", "18765432345")); userInfos.add(new UserInfo("猪师弟", "18765432345")); userInfos.add(new UserInfo("阿呆", "18765432345")); userInfos.add(new UserInfo("8899", "18765432345")); userInfos.add(new UserInfo("孙悟空", "18765432345")); userInfos.add(new UserInfo("孙悟空", "18765432345")); userInfos.add(new UserInfo("孙悟空", "18765432345")); userInfos.add(new UserInfo("孙悟空", "18765432345")); userInfos.add(new UserInfo("孙悟空", "18765432345")); userInfos.add(new UserInfo("孙悟空", "18765432345")); return userInfos; }}

 

转载于:https://www.cnblogs.com/linximeng/p/3751893.html

你可能感兴趣的文章
jquery next()方法
查看>>
深入剖析js命名空间函数namespace
查看>>
SQLHelper
查看>>
用标准Struts2+mvc写的用户管理
查看>>
Cocos2d-x 3.0 编译出错 解决 error: expected &#39;;&#39; at end of member declaration
查看>>
Ubuntu12.04下载Repo
查看>>
python基础教程_学习笔记10:异常
查看>>
MATLAB——scatter的简单应用
查看>>
linux下复制粘贴快捷键
查看>>
什么是对象
查看>>
记录开发小程序
查看>>
WinSock服务程序
查看>>
巴西柔术第五课:过腿
查看>>
文件的操作
查看>>
网上图书商城项目学习笔记-007登录功能实现
查看>>
关于mysql的级联删除(之前好多人咨询过我)
查看>>
Linux环境下的C/C+基础调试技术2——程序控制
查看>>
wpf动画同步闪烁
查看>>
3.16上午 复习雅思核心词+新单词100个
查看>>
Html5 部分特性
查看>>