永发信息网

android编程看不懂getView函数请帮忙每行标注下,解释下这个函数的作用意义

答案:3  悬赏:70  手机版
解决时间 2021-11-16 03:12
android编程看不懂getView函数请帮忙每行标注下,解释下这个函数的作用意义
最佳答案
@Override
public View getView( int position, View converView, ViewGroup Parent) {
    Fruit fruit = getItem(postion);//从数据里获取当前位置的实体
    View view = LayoutInflater.from(getContext()).inflate(resourcedId, null);//获取将当前位置的布局
    ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image);//获取ImageView
    TextView fruitName = (TextView) view.findViewById(R.id.fruit_name);//获取TextView
    fruitImage.setImageResource(fruit.getImageId());//给ImageView添加图片
    fruitName.setText(fruit.getName());//给TextView添加文字
    return view;//将整个布局返回
}追问Fruit fruit = getItem(postion);//从数据里获取当前位置的实体,获取的这个对象有啥用啊,又没见使用
getContext()是啥作用,
return view;//将整个布局返回,返回给谁使用啊追答1、Fruit fruit = getItem(postion);//从数据里获取当前位置的实体,获取的这个对象有啥用啊,又没见使用
--------你在定义adapter的时候,传进来了一个list类型的数据,就是这个了。adapter调用getItem()方法,从list里取出一个Fruit类型的数据,那么在下面,你就可以使用这个实体,根据这个实体取出它对应的数据:fruit.getImageId(),fruit.getName()。

2、getContext()是啥作用
--------有一个变量名叫context(上下文),在android里,这个变量是很重要的。很多地方都需要使用它。这里getContext()就是用来获取这个context变量的。

3、return view;//将整个布局返回,返回给谁使用啊
--------return会把结果返回给调用这个getView()方法的地方。这个方法是在adapter里的,系统有默认的调用处,ListView等setAdapter()了,那么这个view最终会到ListView等控件里去了。追问还有个问题请教大神,就是怎么知道该画哪一个item,是不是和参数position有关,具体的运行过程是咋样的啊 View converView, ViewGroup Parent这两个参数传进来也没见用过。追答position就是当前view的一个索引值,由它来确定是哪一个item。
converView,以后你会看到一种复用控件的写法,就会用到这个参数。
至于Parent,暂时没什么用处。
全部回答
从布局文件创建一个组件view,并为这个组件设置内容,最后返回给适配器,让适配器把这个view显示在界面上,这个很显然是个初级代码,效率很低,建议你学习一下ViewHolder
Fruit fruit = getItem(postion);// 获取集合中每的一个对象,这个应该是在你getItem(int position)里面写的,其实就是它帮你循环找到了当前点击的那一条对应list里面对应的那一条

View view = LayoutInflater.from(getContext()).inflate(resourcedId, null);// 查找你列表里面每一条的布局文件

ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image);// 找到图片这个控件

TextView fruitName = (TextView) view.findViewById(R.id.fruit_name);// 找到文字显示的这个控件

fruitImage.setImageResource(fruit.getImageId());// 你对像里面对应的那个图片ID-此处对象是你在上面已经获取到的那个fruit

fruitName.setText(fruit.getName());// // 你对像里面对应的那个名字-此处对象是你在上面已经获取到的那个fruit
return view;// 返回显示到列表里面去

(这个方法是你要显示列表里面每条必不可少的一个方法,你若不做以上控制是不会有任何样式或数据显示在你列表的每一个item上的)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
魅族MX2是不是需要专用耳机?
senet k136门禁怎么设置 没有说明书 也不知道
哦我越来越排斥反对同性恋的异性恋者 这个心
小女孩养蛇电影,有一个小女孩养蛇到最后养得
历史上即位半天就与国同亡的皇帝:谁在位时间
“九鼎沉如千金钟”是什么意思?
二年级学生学生检讨书怎么写一百五十字到二百
刚建国的时候一个军多少人
你会不会讨厌那种不沉稳的(喜欢动别人来取乐
在麻?能问您一个问题麻
在IE里面打开本地硬盘目录要怎么输入地址?
哪里可以买到金属铱
《你最有才》里的刘东立以前是干什么的
请问我这棵树究竟叫什么名字,我养了十多年的
10M带宽的服务器能承受多少人同时下载
推荐资讯
统计概率问题
财经法规中对哪些事项不服可以不经复议,直接
谁有深爱似毒至死方休的小说免费看?
有没有宁波慈溪观城镇人的,有麻烦回一下,有
你坐我隔离 歌词谁知道?虽然生活在粤语地区
一个男人对我说不畏将来,不念过去,活在当下
英朗GT的安全性能咋样?
山东省宁阳县东疏镇离维坊多远
二战德国的坦克炮。KWKxx是什么意思?一般普通
永鑫货运站地址好找么,我有些事要过去
壬生辰月什么意思。。。。。。。。。。
【倾城时光】这个名字合适吗?想了好久我想好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?