Android 之 ListView的学习
ListView 是一个控件,一个在垂直滚动的列表中显示条目的一个控件,这些条目的内容来自于一个ListAdapter 。EditText Button TextView ImageView Checkbox 五大布局。
ListView的使用有点类似mvc的模式:
model:bean
view :listview
control:adapter
LsitView的使用步骤:
1.布局写listview
2.找到listview
3.封装新闻数据到list集合中 ,目的是为adapter提供数据展示。
4.封装一个Adapter类继承BaseAdatper,写一个构造方法接受list集合数据,复写四个方法
a.创建一个构造方法
b.封装getCount方法
c.getView方法:
c.1:复用convertview
view = View.inflater(Context context, int resuorceId,ViewGroup root)
c.2:找到view上的这些子控件,目的是将list集合中的bean数据一一对应设置给这些子控件
c.3:找到内容:从list集合中获取postion条目上要显示的数据Bean
NewsBean newsBean=list.get(position);
c.4:设置内容:将获取的bean中的数据设置给这些子控件
public View getView(int i, View convertview, ViewGroup viewGroup) {
View view=null;
//1 复用convertView优化listview,创建一个view作为getview的返回值的来显示一个条目
if(convertview!=null){
view=convertview;
}else{
view=View.inflate(context, R.layout.item_news_layout,null);//将一个布局文件转为view对象
//获取View对象方式2:通过LayoutInflater将布局转换成view对象
//view = LayoutInflater.from(context).inflate(R.layout.item_news_layout, null);
//3:通过context获取系统服务得到一个LayoutInflater,通过LayoutInflater将一个布局转换为view对象
//LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//view = layoutInflater.inflate(R.layout.item_news_layout, null);
}
//2获取View上的 子控件对象
ImageView item_img_icon = (ImageView)view.findViewById(R.id.item_img_icon);
TextView item_desc = (TextView) view.findViewById(R.id.item_desc);
TextView item_tv_title = (TextView) view.findViewById(R.id.item_tv_title);
//3获取position位置上的条目对应的list集合中的数据,Bean对象
NewsBean newsBean = list.get(i);
//4将数据设置给子控件显示
item_img_icon.setImageDrawable(newsBean.icon);
item_tv_title.setText(newsBean.title);
item_desc.setText(newsBean.des);
return view;
}
d.getItem方法:将list集合中指定postion上的bean对象返回
e.getItemId,直接返回postion
5.创建一个封装的Adapter对象,设置给listview
6.设置listview条目的点击事件
listview.setOnItem....
7.复写OnItemClicklistener方法,获取相应条目上的bean对象,最终获取到url,做Intent跳转;
Android 之 ListView的学习的更多相关文章
- 38.Android之ListView简单学习(一)
android中ListView用的很普遍,今天来学习下,本篇主要以本地数据加载到listview,后面会学习从网络获取数据添加到listview. 首先改下布局文件: <?xml versio ...
- (转)Android之ListView原理学习与优化总结
转自: http://jishu.zol.com.cn/12893.html 在整理前几篇文章的时候有朋友提出写一下ListView的性能优化方面的东西,这个问题也是小马在面试过程中被别人问到的….. ...
- 42.Android之ListView中ArrayAdapter简单学习
今天学习下Android中ListView关于ArrayAdapter数据绑定, 废话少说直接上代码. 改下布局文件: <?xml version="1.0" encodin ...
- 43.Android之ListView中BaseAdapter学习
实际开发中个人觉得用的比较多是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却能实现很多自己喜欢的列表布局,比如ListView.GridView.Gallery.Spinner ...
- Android(java)学习笔记133:ListViewProject案例(ListView + BaseAdapter + CheckBox)
这个案例可能稍微复杂一点,我会讲述详细一点: 1.首先是AndroidManifest.xml: <?xml version="1.0" encoding="utf ...
- Android(java)学习笔记132:ListViewProject案例(ListView + ArrayAdapter)
1.首先是MainActivity.java文件,如下: package com.himi.lv1; import java.util.ArrayList; import java.util.List ...
- Android(java)学习笔记186:对ListView等列表组件中数据进行增、删、改操作
1.ListView介绍 解决大量的相似的数据显示问题 采用了MVC模式: M: model (数据模型) V: view (显示的视图) C: controller 控制器 入门案例: acit ...
- Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
- Android(java)学习笔记75:ListViewProject案例(ListView + BaseAdapter + CheckBox)
这个案例可能稍微复杂一点,我会讲述详细一点: 1. 首先是AndroidManifest.xml: <?xml version="1.0" encoding="ut ...
随机推荐
- eclipse version
查看Eclipse的版本号: 1. 找到eclipse安装目录 2. 进入readme文件夹,打开readme_eclipse.html 3. readme_eclipse.html呈现的第二行即数字 ...
- 【bzoj1725】[USACO2006 Nov]Corn Fields牧场的安排
题目描述 Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地.FJ打算在牧场上的某几格土 ...
- PHP同时上传“多个”文件示例,并格式化$_FILES数组信息
方法1: 在html表单,放置多个文件选择框, 使用数组名作为组件的名字,如下: <form action="upload.php" method="post&qu ...
- PHP判断远程文件是否存在
<?php /* 函数:remote_file_exists 功能:判断远程文件是否存在 参数: $url_file -远程文件URL 返回:存在返回true,不存在或者其他原因返回false ...
- Uva 2319
理解:区域覆盖.假设该点在勘测半圆的边缘,求出与该点可在一个半圆的坐标范围l,r,然后,for 一次判断 #include<cstdio> #include<algorithm> ...
- python3 黑板客爬虫闯关游戏(一)
这是学习python爬虫练习很好的网站,强烈推荐! 地址http://www.heibanke.com/lesson/crawler_ex00/ 第一关猜数字 很简单,直接给出代码 import ur ...
- quartz集群报错but has failed to stop it. This is very likely to create a memory leak.
quartz集群报错but has failed to stop it. This is very likely to create a memory leak. 在一台配置1核2G内存的阿里云服务器 ...
- ios 抓取真机的网络包
一直被如何从真机上抓包所困扰!今天偶然看到了最简单有效的方法!分享一下: 原地址链接 http://blog.csdn.net/phunxm/article/details/38590561 通过 R ...
- Ubuntu 14.4 配置
1.安装 Orcal Java 使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好: sudo add-apt-repository ppa:webupd8team/ ...
- 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)
欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多 ...