自定义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里面找到控件进行处理就好了,整体的思路都是一样的。

				
时间: 2024-08-09 23:54:54

自定义ListView里面的Item的内容的相关文章

文件重命名之动态修改ListView里指定Item中的组件属性

在Android实际开发过程中经常会遇到,修改ListView中某一项的值.如何达到这一目的呢? 方法主要有两种: 第一种方式:当ListView中某一项的值发生变化之后,重新加载数据已达到更新ListView的目的. 虽然第一种方式能够解决问题,但不值得推荐.因为这样会带来不必要的资源消耗.在移动终端这种硬件资源和计算能力都有限的情况下,显然有点得不偿失了,况且用户的体验也不好. 第二种方式:第二种方式可以说是第一种方式的改进.ListView中某一项的值发生改变,实际上是ListView的数

如何获取listview里面的edittext或者RadioGroup的值,涉及到引发的混乱现象

最近要实现从数据库读数据,该数据对应listview的item布局里面的RadioButton值,并且item布局里面还有EditText的控件. 如何将每一条对应的listview对应值获取出来呢? 实现原理是在作为ArrayAdapter的参数的数据源对象(如数组,集合),举例: ArrayList<MyClass> arrayList = new ArrayList<MyClass>(); ArrayAdapter arrayAdapter = new ArrayAdapte

自定义ListView,实现Item侧滑删除及侧滑出菜单效果

本程序是基于网上开源项目修改而来,具体来源忘了,懒得搜了,如果有不合适的地方,请原作者联系我,我会及时回复和处理的! 该例子程序中主要包含两个ListView,一个是实现侧滑删除,一个是侧滑出菜单,代码中的注释很全,我就不在赘述了,直接贴上核心代码和效果图,程序源码在最后,如果有不太明白的地方可以留言评论,我会及时回复,大牛勿喷啊! 侧滑删除ListView: package com.example.testslidelistview; import android.content.Contex

如何拿到iframe标签里面的src的内容,并且重新进行渲染

<iframe width="100%" height="100%" seamless frameBorder="0" scrolling="no" :src='getSrc(item.frameLink)' > </iframe> 因为后台的直接返回的是iframe标签,不好去控制宽高 getSrc(item) { var srcReg = /src=[\'\"]?([^\'\"]

自定义listview的步骤

1.定义一个实体类: public class Fruit { private String name; private int imageId; public Fruit(String name, int imageId) { this.name = name; this.imageId = imageId; } public String getName() { return name; } public int getImageId() { return imageId; } } 2.新建

自定义ListView实现中间项动态变大的效果(不是自定义Adapter)

为什么强调不是自定义Adapter,因为我这个自定义控件是来源与公司新做的项目,刚开始在百度上找了一圈,都说是自定义ListView ,点进去却是自定义Adaper,有的人就会说你是不是太较真了,自定义Adapter就基本可以实现各种效果了,何必要自定义Listview,今天我做的这个还确实不好用Adapter做,先上效果图,右边的动图来源于左边这个项目中的一个控件. 因为我们的项目中,六个通道的检测过程要同时动态显示,这样位置就要合理调配,因为六个通道采用的布局比较相似,所以当时考虑了Frag

Android ListView实现不同item的方法和原理分析

ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列表里面应该有3种类型的item  1. 头像在左边的气泡Item ,比如”今天下午我就不出来了,...”2. 头像在右边的气泡Item,比如”那就等着我发你好吧”3. 单张图片显示圆角图片item几种Item的风格是完全不同的,那么怎么实现呢? 二实现方法实现的方法我这里可以列举出两种1. 每个It

Android复杂自定义Listview实现

在Android中实现Listview对新人来说比较难以理解,本人看了若干文章后觉得可以使用以下思路来让新人更好理解(同时也做好记录,免得自己以后忘记). 可参考博客:http://cinderella7.blog.51cto.com/7607653/1281696  (这里用MVC的思想去理解Listview,个人认为还是不错的) http://blog.csdn.net/jueblog/article/details/11857281   (一个完整的实现) ----------------

android自定义listview实现圆角

在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种更好的实现方式.在这里先看一下shape的使用: [html] view plaincopy <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schema