• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android Listview的自定义界面的使用

android Listview的自定义界面的使用

作者:qq_40712616 字体:[增加 减小] 来源:互联网 时间:2018-01-28

qq_40712616通过本文主要向大家介绍了listview,Android等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

listview的使用在这里就不说了,直接说listview定制界面的使用。

1.定义一个实体类,作为listview的适配器的适配类型

新建类Fruit,代码如下:

public class Fruit {
    private String name; 
    private int imageId; //图片id
    public Fruit(String name, int imageId) {
        this.name = name;
        this.imageId = imageId;
    }
    public String getName() {
        return name;
    }
    public int getImageId() {
        return imageId;
    }
}

2.定义listview的布局

建立fruit_item.cml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
    <ImageView
        android:id="@+id/fruit_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/fruit_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="10dip" />
</LinearLayout>

在这个布局中,我们定义了一个 ImageView 用于显示水果的图片,又定义了一个TextView 用于显示水果的名称。

3.创建一个自定义的适配器,这个适配器继承自ArrayAdapter,并将泛型指定为 Fruit 类
新建类FruitAdapter:

public class FruitAdapter extends ArrayAdapter<Fruit> {
    private int resourceId;
    public FruitAdapter(Context context, int textViewResourceId,
List<Fruit> objects) {
    super(context, textViewResourceId, objects);
    resourceId = textViewResourceId;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Fruit fruit = getItem(position); // 获取当前项的Fruit实例
    View view = LayoutInflater.from(getContext()).inflate(resourceId, null);

    ImageView fruitImage = (ImageView) view.findViewById(R.id.fruit_image);
    TextView fruitName = (TextView) view.findViewById(R.id.fruit_name); 
    /*以下代码一定要注意参数类型(第一个为int,第二个为string),否则会闪退,虽然是个小问题,一旦出错确实很难发现*/
    fruitImage.setImageResource(fruit.getImageId());
    fruitName.setText(fruit.getName());

    return view;
}
}

FruitAdapter 重写了父类的一组构造函数,用于将上下文、ListView 子项布局的 id 和数据都传递进来。另外又重写了 getView()方法,这个方法在每个子项被滚动到屏幕内的时候会被调用。在 getView 方法中,首先通过 getItem()方法得到当前项的 Fruit 实例,然后使用LayoutInflater 来为这个子项加载我们传入的布局,接着调用 View 的 findViewById()方法分别获取到 ImageView 和 TextView 的实例,并分别调用它们的 setImageResource()和 setText()方法来设置显示的图片和文字,最后将布局返回。

4.MainActivity的调用
(1)新建Fruit类型的List
private List fruitList = new ArrayList();

(2)在 onCreate()方法中添加数据,
Fruit apple = new Fruit(“Apple”,R.drawable.apple_pic);
fruitList.add(apple);
Fruit banana = new Fruit(“Banana”,R.drawable.banana_pic);
fruitList.add(banana);
Fruit orange = new Fruit(“Orange”,R.drawable.orange_pic);
fruitList.add(orange);

。。。。。。
(3)在 onCreate()方法中创建 FruitAdapter 对象,并将 FruitAdapter 作为适配器传递给了 ListView:
FruitAdapter adapter = new FruitAdapter(MainActivity.this,R.layout.fruit_item, fruitList);

(4)
ListView listView = (ListView) findViewById(R.id.list_view);
listView.setAdapter(adapter);

转自《第一行代码》。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • android Listview的自定义界面的使用
  • 从源码角度入手实现RecyclerView的Item点击事件,recyclerviewitem
  • 功能强大的StickyHeaderListView:标题渐变、吸附悬停、筛选分类、动态头部,
  • ListView的&#160;addHeaderView,addheaderview
  • ListView 添加 HeaderView常见错误,listviewheaderview
  • BaseAdapter获取View之三重境界,baseadapterview
  • Android中使用ExpandableListView实现微信通讯录界面(完善仿微信APP),expandablelistview
  • listview下拉刷新和上拉加载更多的多种实现方案,listview下拉
  • Android中ListView实现图文并列并且自定义分割线(完善仿微信APP),androidlistview
  • Android listview和gridview以及view的区别,androidgridview

相关文章

  • 2017-05-26Android基于监听的事件处理机制
  • 2017-05-26Android开发技巧——大图裁剪
  • 2017-05-26我的android学习经历,android学习经历
  • 2017-05-26Android菜单项内容大全,android菜单项大全
  • 2017-05-26切换网站主域名经验总结
  • 2017-05-26android:exported 属性分析
  • 2017-05-26AndroidStudio项目提交(更新)到github最详细步骤
  • 2017-05-26Android多分辨率适配实践【1】使用字体图标(内含两枚神器),android两枚
  • 2017-05-26android组合控件Titlebar的定制过程
  • 2017-05-26安卓开源项目周报0208,安卓开源项目0208

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • msm8909+android5.1.1 由BLSP3改为BLSP1后SPI读写速度慢问题解决
    • 在android中使用SQLite数据库
    • 【lushengduan】03、点击事件的四种实现方式,lushengduan03
    • 微信支付,信支付
    • andriod绘制图形,andriod绘制
    • Android Studio使用中的异常,AndroidStudio使用
    • android实现无限轮播,android实现轮播
    • 手机安全卫士——手机防盗页面,安全卫士防盗页面
    • 分析google的multidex库,googlemultidex库
    • Android安全专项-AndBug动态调试工具环境搭建

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有