自定义ListView里面的Item的内容
我们不可能满足只是往每个item里面填字就足够,像QQ的好友列表就是一个ListView,每个Item里面有头像、名字啊、签名什么的,内容丰富。那我们要怎么定义一个内容丰富的item呢?
要用到Adapter啦!构造每一个ListView都要有一个Adapter,只要这个Adapter弄好了,每个Item也就弄好啦!
让我们来看看构造一个ListView的普遍方法!
Adapter adpter = new MyAdapter(content,LayoutID,T[]); listView.setAdapter(adpter); //首先要构造一个适配器Adapter,content是当前的上下文,LayoutID就是传入的布局文件,可以通过R.layout.xx找到,这个布局文件,可以用作item的布局文件。就是说item的布局就是这个布局文件里面的布局,我们可以通过这个布局来设置我们item的布局,T[]是一个数组,可以往item里面填数据的。
一个实例,要每个item里面都有一个TextView。
自定义一个Adapter:
public class MyAdapter extends ArrayAdapter<String> {
//传进来的布局文件ID
private int resouceID;
Context context;
public MyAdapter(Context context, int textViewResourceId, String[] objects) {
super(context,textViewResourceId, objects);
resouceID = textViewResourceId;
this.context = context;
}
//这个函数很重要,是绘制每个Item的时候调用的,返回的View用来构造item
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//这一步其实我自己都有点难理解,就是获取到了传进去的那个T[]数组的T[position]
String city = (String)getItem(position);
//每个Item是一个view
View view;
//给view设置布局,就是我们传进来的那个布局,这样设置之后,每个item就是我设置的布局文件的布局了
view = LayoutInflater.from(getContext()).inflate(resouceID,null);
//找到布局中的TextView
TextView cityname = (TextView)view.findViewById(R.id.itemtext);
cityname.setText(city);
//返回View用来构造item
return view;
}
}
自定义的布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" > <TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/itemtext"
android:gravity="center"
android:textSize="40dp" /> </RelativeLayout>
在onCreate里面里面设置ListView:
Adapter adpter = new MyAdapter(content,LayoutID,T[]); listView.setAdapter(adpter);
整个代码比较简洁,也比较简单,只是简述了一般的思路。这个例子中只是把item里面弄个TextView,像复杂的Item只要在布局文件里多弄控件,然后在Adapter里面找到控件进行处理就好了,整体的思路都是一样的。
自定义ListView里面的Item的内容的更多相关文章
- 如果你的NavigationDrawer里面的Item没有响应,Drawer不能左滑关闭
如果你的NavigationDrawer里面的Item没有响应,Drawer不能左滑关闭,应该是因为你没有把主要内容放在DrawerLayout标签下的第一位. The main content vi ...
- 如何获取listview里面的edittext或者RadioGroup的值,涉及到引发的混乱现象
最近要实现从数据库读数据,该数据对应listview的item布局里面的RadioButton值,并且item布局里面还有EditText的控件. 如何将每一条对应的listview对应值获取出来呢? ...
- 文件重命名之动态改动ListView里指定Item中的组件属性
在Android实际开发过程中常常会遇到,改动ListView中某一项的值.怎样达到这一目的呢? 方法主要有两种: 第一种方式:当ListView中某一项的值发生变化之后,又一次载入数据已达到更新Li ...
- Qt编程之通过鼠标滚轮事件缩放QGraphicsView里面的Item
首先自己subclass QGraphicsView的一个类,叫DiagramView,然后重新实现它的滚轮事件函数,然后发送一个缩放信号: oid DiagramView::wheelEvent(Q ...
- 获取comboBox里面的item使用的方法
使用currentIndex()或者currentText() void Widget::calc() { int first = ui->firstLineEdit->text().to ...
- Android ListView实现不同item的方法和原理分析
ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列 ...
- 自定义listview的步骤
1.定义一个实体类: public class Fruit { private String name; private int imageId; public Fruit(String name, ...
- Android复杂自定义Listview实现
在Android中实现Listview对新人来说比较难以理解,本人看了若干文章后觉得可以使用以下思路来让新人更好理解(同时也做好记录,免得自己以后忘记). 可参考博客:http://cinderell ...
- android自定义listview实现圆角
在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种 ...
随机推荐
- IOS-第三方(SDWebImage)
SDWebImage ReadMe.md 文档 附:SDWebImage框架github下载地址:https://github.com/rs/SDWebImage注1:该文章简单翻译了SDWebIma ...
- react: redux-devTools
import {composeWithDeTools} from 'redux-devtools-extension'; const bindMiddleware = middleware => ...
- 微信oauth2验证
微信公众号进行oauth2验证时的要求: 需要两个地方配置: (1) Oauth2验证链接中的appid.redirecturi (2) 微信公众号授权回调页面域名: Appid为公众号的ap ...
- win7 秘钥
链接 安装好Windows7后右击计算机--属性--更改产品密匙 输入以下密匙; RHTBY-VWY6D-QJRJ9-JGQ3X-Q2289 HT6VR-XMPDJ-2VBFV-R9PFY-3VP7R ...
- C#基础知识梳理系列
1. 这个系列深入的从IL层面谈了C#各种基本知识的本质,十分值得学习: http://www.cnblogs.com/solan/category/398748.html
- I.MX6 View长宽大于屏的分辨率
/******************************************************************************** * I.MX6 View长宽大于屏的 ...
- GitHub Blog创建以及本地管理
创建 注册GitHub账户 首页点击新建仓库 New repository repository name必须为 Owner.github.io EX:我的Owner下为pualus,那么就应为pua ...
- 利用struts2的json返回方式来控制jquery.validate的remote框架,进行表单验证
- HDU2032 杨辉三角
解题思路:不要小看这题水题,如果数据类型没有用long long, 当n开为35时,会出现TLE,而且会报非法内存访问,现在还 不理解为什么,若有高手,请不吝赐教. 上代码: #include< ...
- BZOJ - 2141 排队 (动态逆序对,区间线段树套权值线段树)
题目链接 交换两个数的位置,只有位于两个数之间的部分会受到影响,因此只需要考虑两个数之间有多少数对a[l]和a[r]产生的贡献发生了变化即可. 感觉像是个带修改的二维偏序问题.(修改点$(x,y)$的 ...