Android-viewpager里不显示listview

发布于 2016-11-02 06:40:29 字数 5621 浏览 1277 评论 1

代码如下:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager vp=(ViewPager) findViewById(R.id.vp);

//viewpager
//初始化views数据
List<View>views=new ArrayList<View>();
LayoutInflater inflater=LayoutInflater.from(this);
views.add(inflater.inflate(R.layout.viewpager_menu, null));
views.add(inflater.inflate(R.layout.viewpager_order, null));

List<String>titles=new ArrayList<String>();
titles.add("菜单界面");
titles.add("订单界面");

EasyEatAdapter adapter=new EasyEatAdapter(views,titles);
vp.setAdapter(adapter);


//listView

View orderView=inflater.inflate(R.layout.viewpager_order,null);
ListView lv=(ListView) orderView.findViewById(R.id.lv_order);
List<Order>data=new ArrayList<Order>();
data.add(new Order(R.drawable.img, "张三1", "18812345678", 3, "18:20", ""));
data.add(new Order(R.drawable.img, "张三2", "18812345678", 3, "18:20", ""));
data.add(new Order(R.drawable.img, "张三3", "18812345678", 3, "18:20", ""));
data.add(new Order(R.drawable.img, "张三4", "18812345678", 3, "18:20", ""));
data.add(new Order(R.drawable.img, "张三5", "18812345678", 3, "18:20", ""));
data.add(new Order(R.drawable.img, "张三6", "18812345678", 3, "18:20", ""));
data.add(new Order(R.drawable.img, "张三7", "18812345678", 3, "18:20", ""));
data.add(new Order(R.drawable.img, "张三8", "18812345678", 3, "18:20", ""));
OrderAdapter adapter2=new OrderAdapter(data);
lv.setAdapter(adapter2);
}


//viewpager
class EasyEatAdapter extends PagerAdapter{

private List<View>views;
private List<String>titles;

public EasyEatAdapter (List<View>views,List<String>titles) {
this.views=views;
this.titles=titles;
}


//得到标题
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}

//得到数量
@Override
public int getCount() {
return views.size();
}

//滑动后页面
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view=views.get(position);
container.addView(view);
return view;
}

//销毁页面
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view=views.get(position);
container.removeView(view);

}

@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}

}


//listView
class OrderAdapter extends BaseAdapter{
private List<Order>data;

public OrderAdapter(List<Order>data){
this.data=data;
}

//说明listview有多少个条目
@Override
public int getCount() {
return data.size();
}

//得到指定position 的条目
@Override
public Object getItem(int position) {
return data.get(position);
}

//得到条目的ID
@Override
public long getItemId(int position) {
return position;
}



//说明每个条目的布局
//convertView:缓存的条目
//parent:ListView
//返回值作为ListView的一个条目
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Order order=data.get(position);
if(convertView==null){
LayoutInflater inflater=LayoutInflater.from(MainActivity.this);
convertView=inflater.inflate(R.layout.listview_item_order, null);
}

TextView tvName=(TextView) convertView.findViewById(R.id.tv_name);
TextView tvNumber=(TextView) convertView.findViewById(R.id.tv_number);
TextView tvPhone=(TextView) convertView.findViewById(R.id.tv_phone);
TextView tvTime=(TextView) convertView.findViewById(R.id.tv_time);
TextView tvId=(TextView) convertView.findViewById(R.id.tv_id);
TextView tvRemark=(TextView) convertView.findViewById(R.id.tv_remark);
ImageView ivPic=(ImageView) convertView.findViewById(R.id.imageView1);


//设置数据
tvName.setText(order.getName());
tvNumber.setText(String.valueOf(order.getNumber()));
tvPhone.setText(order.getPhone());
tvTime.setText(order.getTime());
tvId.setText(String.valueOf(order.getId()));
tvRemark.setText(order.getRemarkString());
ivPic.setImageResource(order.getId());
return convertView;
}

}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灵芸 2017-07-20 11:24:43

views.add(inflater.inflate(R.layout.viewpager_menu, null));
views.add(inflater.inflate(R.layout.viewpager_order, null));

View orderView=inflater.inflate(R.layout.viewpager_order,null);
ListView lv=(ListView) orderView.findViewById(R.id.lv_order);

擦 ,这么明显,这要是能显示就怪了。上面加的和下面你设置listview的那个orderview,虽然是同一个布局文件,但是明显是两个不同的view好不好。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文