android开发 BaseAdapter中getView()里的3个参数是什么意思

BaseAdapter适配器里有个getView()需要重写publicViewgetView(intposition,ViewconverView,ViewGroupp... BaseAdapter适配器里有个getView()需要重写
public View getView(int position,View converView,ViewGroup parent)
{
//省略。。
}
请问这个方法的三个参数是什么意思?作用是什么? 我不要简单的翻译哈,最好举个例子具体用法
展开
 我来答
岌岌可危1
2014-01-13 · TA获得超过236个赞
知道答主
回答量:35
采纳率:0%
帮助的人:42.8万
展开全部
int position位置,一般BaseAdapter都是很多类型一样的数据展示在界面,该属性是判断显示在界面上的是第几个,通过position在BaseAdapter自定义的数组或者集合中取值。并展示在界面上。
View converView 展示在界面上的一个item。因为手机屏幕就那么大,所以一次展示给用户看见的内容是固定的,如果你List中有1000条数据,不应该new1000个converView,那样内存肯定不足,应该学会控件重用,滑出屏幕的converView就在下面新进来的item中重新使用,只是修改下他展示的值

代码如下:
View v = null;
if (convertView == null) {
v = LayoutInflater.from(context).inflate(
R.layout.adapter__item, parent, false);
Holder vh = new Holder();
vh.text = (TextView) v.findViewById(R.id.text1);
v.setTag(vh);
} else {
v = convertView;
}
Holder vh = (Holder) v.getTag();
vh.text.setText(data[position]);
return v;

ViewGroup parent 这个属性是加载xml视图时使用。
inflate(R.layout.adapter__item, parent, false);确定他父控件,减少宽高的测算
码农朱哲
2014-01-11 · 超过11用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:36.9万
展开全部
就是converView所在的父控件,不如GridView中有6个Item,那么每个Item显示的View是converView,parent则值得就是GridView本身
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
荔枝_胡步军
2014-01-08
知道答主
回答量:4
采纳率:0%
帮助的人:5497
展开全部
public View getView(int position,View converView,ViewGroup parent)
{
Message msg = (Message) getItem(position);
ChatHolder chatHolder;
if (convertView == null) {
convertView = baseActivity.getLayoutInflater().inflate(R.layout.chathistory_row, null);
}else {
chatHolder = (ChatHolder) convertView.getTag();
}
。。。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式