viewpager动态加载listView数据


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<View> vessel = new ArrayList<View>();
private Map<String,List<UserInfo>> listData = new HashMap<String,List<UserInfo>>();
private List<String> dataListKey = new ArrayList<String>();
// 代表第一个和第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<UserInfo> 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<UserInfo> getUserInfos() {

List<UserInfo> userInfos = new ArrayList<UserInfo>();
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;
}

}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v4.view.ViewPager
android:id="@+id/viewpagerLayout"
android:layout_width="wrap_content"
android:layout_height="318dp"
android:background="@drawable/default_bg"
android:layout_weight="0.01" >
</android.support.v4.view.ViewPager>

</LinearLayout>


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#88ffffff"
android:orientation="vertical" >

<ListView
android:id="@+id/LV"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />

</LinearLayout>

viewpager动态加载listView数据

时间: 2024-11-23 22:31:24

viewpager动态加载listView数据的相关文章

【Jquery mobile】动态加载ListView 转

[Jquery mobile]动态加载ListView 分类: Jquery Mobile2011-12-01 09:04 13984人阅读 评论(1) 收藏 举报 jquerylistviewmobilestylesheetjavascriptlist 动态增加列表项是一个基本的功能,今天测试了一下.先贴下效果图: 点击“更多...”,就会增加列表项. 代码如下: [html] view plaincopy <!DOCTYPE html> <html> <head>

ext combobox动态加载数据库数据

前台: var provinceStore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: basePath + "/stationManage/station_getProvinceJSON.action" }), reader: new Ext.data.JsonReader( { root: "" }, ["PROVINCEID", "PROVINCENAME

动态加载页面数据的小工具 javascript + jQuery (持续更新)

使用该控件,可以根据url,参数,加载html记录模板(包含json参数对应,以及具体记录位置Index根据参数描述加载对应的属性,并可以根据简单的判断分支加载对应html或者控件)至列表容器内(JQuery选择器字符串)注: 该控件在使用前需引入JQuery框架支持,使用该控件,可极大的减少Ajax列表数据动态加载开发工作的实际工作量. 使用方式: 首先,添加控件引用,并加入Jquery支持 <script src="js/jquery.js"></script&g

ViewPager动态加载、删除页面

很多人在网上说ViewPager的PagerAdapter.notifyDataSetChanged()无效.刚开始我也这样认为,甚至被误导以为是真理. 后来,找了一下,在PagerAdatpar重写getItemPosition(),return POSITION_NONE即可每次刷新加载图面.这是关键点. 这时,如果只是修改"DataSet",如List等这类的,然后再notifyDataSetChanged(),会发现出现界面重叠.解决办法是重写destroyItem(),把Vi

Android动态加载ListView中的Item

我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点击每一个Item的时候,就通知adapter更新getView,系统得到通知就相应的加载一遍布局,就达到了动态加载item布局的效果.希望给大家带来点启迪,有问题或想要代码的可以留言,欢迎大家留言谈论listview的一些知识,以求共同进步,转载请标明出处: http://blog.csdn.net

Echarts使用及动态加载图表数据

Echarts使用及动态加载图表数据 官网:http://echarts.baidu.com/ 1.文档 2.实例 名词: 1.统计维度(说明数据) 维度就是统计致力于建立一个基于多方位统计(时间.地域.访问者).全方位分析网站流量的统计标准,形成原始数据,数据视觉化,数据行为化,数据深入挖掘的数据分析的模式 2.指标(衡量数据) 指标是指可以按总数或比值衡量的具体维度元素.例如,维度"城市"可以关联指标"人口",其值为具体城市的居民总数  

动态加载表格数据(自定义)

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> tr>td{ width: 100px; border: 1px solid red; } </style></head><body><ul id="boxU

python获取动态网站上面的动态加载的数据(初级)

我们在处理一些网站数据的时候,有时候我们需要的数据很多都是动态加载的,而不都是静态的,以下以一个实例来介绍简单的获取动态数据,首先申明本人小白,还在学习python中,这个方法还是比较笨拙的,但是对于初学者还是需要知道的. 首先我们的要求是获取下面文章的参考文献: 刚刚开始,我的想法是使用lxml.BeatifulSoup.正则表达式来处理,这几个是处理静态网站的常用方法,查看网页源码我们会发现相应的div里面是空,也就是说上面的数据不是静态的,而是后面动态加载的,利用googl浏览器可以看到:

Echarts动态加载后台数据

注意:1.用Ajax请求获取后台数据 2.Echarts只能处理Json数据 后台Controller:根据业务需求不同而返回不同数据,我前台要循环遍历Echarts的series进行数据添加,所以后台返了个二维数组过去. 前端JSP页面:为Echarts准备一个具有高宽的dom容器 前端JS:初始化时即加载Echarts,将不需要进行加载的配置项(例如title.tooltip等)不作改动,将需要动态加载数据的配置放入ajax的success:function(){}中进行处理. 定义一个为s