package com.applite.androidallinone; import java.util.ArrayList; import java.util.List; import com.applite.androidallinone.AtySliderAndListView.ViewPageAdapter; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.ImageView.ScaleType; public class AtyViewPagerAsListViewItem extends Activity { private ListView listView=null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.aty_sliderlistview_listview); init(); } private void init() { listView=(ListView)findViewById(R.id.sliderlistview_listview); ArrayList<String> data=new ArrayList<String>(); for (int i = 0; i < 20; i++) { data.add(i+":"+"数据"); } listView.setAdapter(new ListViewAdapter(data)); } public class ViewPageAdapter extends PagerAdapter { private List<ImageView> imageViews=null; public ViewPageAdapter(List<ImageView> imageViews) { this.imageViews=imageViews; } @Override public void destroyItem(View container, int position, Object object) { // TODO Auto-generated method stub ((ViewPager)container).removeView(imageViews.get(position)); } @Override public Object instantiateItem(View container, int position) { ImageView imageView=imageViews.get(position); ((ViewPager)container).addView(imageView); return imageView; } @Override public int getCount() { // TODO Auto-generated method stub return imageViews.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0==arg1; } } public class ListViewAdapter extends BaseAdapter { private LayoutInflater mInflater=null; private List<String> mData=null; public ListViewAdapter(List<String> data) { //?? mInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.mData=data; } //返回listview中的item类型 @Override public int getItemViewType(int position) { // TODO Auto-generated method stub return position>0?1:0; } //返回listview中有几种item类型 @Override public int getViewTypeCount() { // TODO Auto-generated method stub return 2; } @Override public int getCount() { // TODO Auto-generated method stub return mData.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return mData.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view=convertView; //第一个 ViewPager int itemViewType=getItemViewType(position); if(itemViewType==0) { ViewPagerHolder viewPagerHolder=null; if(view==null) { view=mInflater.inflate(R.layout.aty_sliderlistview_slider, null); viewPagerHolder=new ViewPagerHolder(); viewPagerHolder.viewPager=(ViewPager)view.findViewById(R.id.sliderlistview_slider); List<ImageView> imageViews=new ArrayList<ImageView>(); for (int i = 0; i < 4; i++) { ImageView imageView=new ImageView(AtyViewPagerAsListViewItem.this); imageView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,100)); imageView.setScaleType(ScaleType.FIT_XY); imageView.setImageResource(R.drawable.ic_launcher); imageViews.add(imageView); } ViewPageAdapter viewPageAdapter=new ViewPageAdapter(imageViews); viewPagerHolder.viewPager.setAdapter(viewPageAdapter); view.setTag(viewPagerHolder); } else { view=convertView; viewPagerHolder=(ViewPagerHolder)view.getTag(); } } else if(itemViewType==1) { ViewHolder viewHolder=null; if(view==null) { view=mInflater.inflate(R.layout.aty_sliderlistview_item, null); viewHolder=new ViewHolder(); viewHolder.textView=(TextView)view.findViewById(R.id.sliderlistview_listitem); view.setTag(viewHolder); } else { viewHolder=(ViewHolder)view.getTag(); } viewHolder.textView.setText("我的位置:"+position); } return view; } } public static class ViewHolder { public TextView textView; } public static class ViewPagerHolder { public ViewPager viewPager; } }