android开发中的自定义适配器 5

publicclassCustomAdapterextendsBaseAdapter{Contextcontext;List<Detail>list;LayoutInfl... public class CustomAdapter extends BaseAdapter {
Context context;
List<Detail> list;
LayoutInflater inflater;

public CustomAdapter(Context context,List<Detail> list) {
this.context=context;
this.list=list;
inflater=LayoutInflater.from(context);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
arg1=inflater.inflate(R.layout.list_style, null);
TextView textView=(TextView)arg1.findViewById(R.id.name);
TextView textView2=(TextView)arg1.findViewById(R.id.signature);
textView.setText(list.get(arg0).getName());
textView2.setText(list.get(arg0).getSignature());
return arg1;
}
}
请问为什么会出错?
展开
 我来答
叻帝_曦
2014-12-17 · 超过31用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:51.1万
展开全部
arg1=inflater.inflate(R.layout.list_style, null);中的arg1是一个复用的视图,你每次都重新inflate一次,说明没有进行视图复用,如果list大小很大的时候,会出现内存溢出的错误。正确的写法是:

View view = arg1!=null?arg1:inflater.inflate(R.layout.list_style, null);
........
return view;
浙江启扬智能科技有限公司
2023-06-12 广告
ARM,Android,Linux之间并无直接联系。ARM是嵌入式CPU,Andrioid和Linux是操作系统。 ARM不是为Linux而设计,Linux也不是为ARM而设计,二者是独立存在的。Linux和Android可以移植到以ARM... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
sh_suhe
2014-12-17
知道答主
回答量:14
采纳率:0%
帮助的人:5.9万
展开全部
报什么错?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式