我重写了一个adapter,构造adapter时要传入一个List,我的list是由三个hashmap构成的List<HashMap<String,String>>,我的目的是要显示三个view,每个view上显示一个map中的内容,我的结果却出现了三个view,但是每个view把三个map中的值都显示出来了,也就是说三个view是一模一样的,请问怎么回事啊!
附代码:
public class MyAdapter extends BaseAdapter {
private Context context = null;
List<HashMap<String,String>> mItems = new ArrayList<HashMap<String,String>>();
public MyAdapter(Context context)
{
this.context = context;
}
public MyAdapter(Context context,List<HashMap<String,String>> lt)
{
this.context = context;
this.mItems = lt;
}
//设置文件列表
public void setListItems(List lit){
mItems = lit;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mItems.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mItems.get(position);
}
//得到移项的ID
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
MyView mv;
if(convertView == null){
mv = new MyView(context, mItems);
}else{
mv = (MyView)convertView;
} return mv;
}
}
附代码:
public class MyAdapter extends BaseAdapter {
private Context context = null;
List<HashMap<String,String>> mItems = new ArrayList<HashMap<String,String>>();
public MyAdapter(Context context)
{
this.context = context;
}
public MyAdapter(Context context,List<HashMap<String,String>> lt)
{
this.context = context;
this.mItems = lt;
}
//设置文件列表
public void setListItems(List lit){
mItems = lit;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mItems.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mItems.get(position);
}
//得到移项的ID
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
MyView mv;
if(convertView == null){
mv = new MyView(context, mItems);
}else{
mv = (MyView)convertView;
} return mv;
}
}
解决方案 »
- Bitmap insampleSize没用
- 【求助】反汇编成功后,回编译出错
- 调用系统camera照相截取图像时的问题
- android入门程序求助。
- android怎么连接网络获取网页内容和提交post?
- 请高手指教
- android报出很奇怪的问题,无语了!!
- Android 插件开发,Activity怎么做到有正常的生命周期 ?
- 安卓数据库 逐条显示问题。。。。
- android studio下提示gradle project sync failed.Basic functionality will not work
- 菜鸟在示例基础上增加功能,怎样组织架构?
- 大家看看搜狗的这个效果怎么实现的?
因为你的mItems对象存放了3个记录,并且会根据getCount()中返回的int值来判断是否调用getView(int position, View convertView, ViewGroup parent)方法,mItems.size()==3
2 为什么每个view把三个map中的值都显示出来了
因为mv = new MyView(context, mItems);你在调用这个构造方法的时候就把3条记录都绑定到这个view里头去了
把一个mv只获取一个mItems就行了