在开发android中,ListView 的应用显得非常频繁,只要需要显示列表展示的应用,可以说是必不可少,下面是记录开发中应用到ListView与Adapter 使用的实例:

ListView 所在页面中的布局(listview_item.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true">
<ListView
android:id="@+id/listview_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:scrollbars="none">
</LinearLayout>

Adapter 展示的布局 (item.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <LinearLayout
android:id="@+id/layout_sub_item_content"
android:layout_width="match_parent"
android:layout_height="50dp"> <ImageView
android:id="@+id/img_choose"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
android:src="@drawable/xuanzhong_icon"
android:layout_gravity="center_vertical"
/>
<TextView
android:id="@+id/textview_name"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4"
android:gravity="center_vertical"
android:fontFamily="noto-sans-hans-regular"
android:textSize="14sp"
android:textColor="#333333"
android:text="项目名称"
android:paddingLeft="5dp"/> <TextView
android:id="@+id/textview_price"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:fontFamily="noto-sans-hans-regular"
android:textSize="14sp"
android:textColor="#333333"
android:text="454.0"
android:gravity="center"/> <TextView
android:id="@+id/textview_vip"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:fontFamily="noto-sans-hans-regular"
android:textSize="14sp"
android:text="非会员价"
android:gravity="center"
android:textColor="@color/red"/> </LinearLayout>
</LinearLayout>

activity_item.java:

/**
* 项目列表适配器
*/
private MyBaseAdapt itemInfoAdapt; @InjectView(R.id.listview_item)
ListView listview_item; private class ViewHolder {
TextView textview_name;
TextView textview_price;
TextView textview_vip;
ImageView img_choose;
}
/**
*项目数据List
*/
private List<ItemInfo> listItemInfo=new ArrayList<>(); /**
* 初始化列表
*/
private void initItemListView() {
itemInfoAdapt = new MyBaseAdapt<ItemInfo>(this, R.layout.item, listItemInfo) {
@Override
public View myAdapt(int position, View convertView, View mView, List<ItemInfo> mEntityList) {
ViewHolder holder = null;
if (convertView == null) {
convertView = mView;
holder = new ViewHolder();
holder.textview_name = (TextView) convertView.findViewById(R.id.textview_name);
holder.textview_price = (TextView) convertView.findViewById(R.id.textview_price);
holder.textview_vip = (TextView) convertView.findViewById(R.id.textview_vip);
holder.img_choose=(ImageView) convertView.findViewById(R.id.img_choose);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ItemInfo itemInfo = mEntityList.get(position);
holder.textview_name.setText(itemInfo.getName());
holder.textview_price.setText(PriceManager.getPrice(itemInfo.getPriceStr(), itemInfo.getPriceTypeStr()).get(Common.PRICE_TYPE_ORIGIN));
holder.textview_vip.setText(PriceManager.getPrice(itemInfo.getPriceStr(), itemInfo.getPriceTypeStr()).get(Common.PRICE_TYPE_PIONEER));
return convertView;
}
};
listview_item.setAdapter(itemInfoAdapt);
}

android 开发之 ListView 与Adapter 应用实践的更多相关文章

  1. 【转】Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法

    Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法 [原文链接] 这篇文章完美的解决了我几个月没结论的bug... 感谢热爱分享的技术达人~ 我是怎么走进这个大坑的 ...

  2. Android开发之ListView条目批量选择删除

    ListView实现的列表,假设是可编辑,可删除的,一般都要提供批量删除功能,否则的话,一项一项的删除体验非常不好,也给用户带来了非常大的麻烦. 实现效果图 详细实现代码 select.xml 主布局 ...

  3. Android开发之ListView实现不同品种分类分隔栏的效果(非ExpandableListView实现)

    我们有时候会遇到这么一个情况.就是我在一个ListView里面须要显示的东西事实上是有种类之分的.比方我要分冬天,夏天.秋天.春天,然后在这每一个季节以下再去载入各自的条目数据. 还有,比方我们的通讯 ...

  4. Android开发之ListView添加多种布局效果演示

    在这个案例中展示的新闻列表,使用到ListView控件,然后在适配器中添加多种布局效果,这里通过重写BaseAdapter类中的 getViewType()和getItemViewType()来做判断 ...

  5. Android开发之ListView设置隔行变色

    public class HLCheckAdapter extends BaseAdapter { private List<HuoLiang> list; private Context ...

  6. Android开发之ListView详解 以及简单的listView优化

    ListView列表视图 最常用的控件之一,使用场景例如:微信,手机QQ等等. android:divider:每个item之间的分割线,可以使用图片或者色值. android:dividerHeig ...

  7. android开发之 listview中的item去掉分割线 隐藏分割线

    有三种方法: 1> 设置android:divider="@null" 2> android:divider="#00000000" #000000 ...

  8. 【Android UI】Android开发之View的几种布局方式及实践

    引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...

  9. Android开发之旅: Intents和Intent Filters(理论部分)

    引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...

随机推荐

  1. .Net Core中Dapper的使用详解

    Dapper 是一个轻量级ORM框架,在项目中如果对性能比较看中,Dapper是一个不错的选择.接下来我们就来看看如何在项目中使用Dapper. 1.安装Dapper 这里直接使用Nuget安装.   ...

  2. [Swift]LeetCode44. 通配符匹配 | Wildcard Matching

    Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '? ...

  3. [SQL]LeetCode601. 体育馆的人流量 | Human Traffic of Stadium

    SQL架构 Create table If Not Exists stadium (id int, visit_date DATE NULL, people int) Truncate table s ...

  4. admui框架使用经验

    刚开始接触admui框架时确实有些迷茫,不知道怎么使用,摸索了一段时间后才发现这个框架很简单!以下是我遇见的一些坑,总结一下啦! 1.使用框架第一步就是开启服务器,我给公司写项目时开启的是5000端口 ...

  5. pytthon—day8 读写模式的结合、文件操作模式、with完成文本文件复制、游标操作

    一.读写模式的结合 w:写指没有新建文件,有文件就清空 w=open('1.txt','w',encoding='utf-8') w.write('000\n') 在写入数据时,需要及时处理内存空间, ...

  6. ELK-ElasticSearch索引详解

    1.使用_cat API检测集群是否健康,确保9200端口号可用: curl 'localhost:9200/_cat/health?v' 注意:绿色表示一切正常,黄色表示所有的数据可用但是部分副本还 ...

  7. J2EE规范总结

    概述 J2ee是我们步入java学习的一个開始.它将开启这趟奇幻之旅,Java是一种简单的,跨平台的,面向对象的,分布式的.解释的.健壮的安全的.结构的中立的,可移植的.性能非常优异的多线程的,动态的 ...

  8. Mybatis sql映射文件浅析 Mybatis简介(三)

    简介 除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句. Mybatis创建了一套规则以XML为载体映射SQL 之前提到过,各项配置信息将Mybatis应用的整 ...

  9. jmeter 分布式压测(windows)

    单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. ...

  10. 【Node.js】通过mongoose得到模型,不能新添字段的问题

    问题描述 通过node.js为查询到的json对象添加新的字段,对象成功保存到数据库中,但新增字段却没保存. 前几天用vue+node.js+mongodb技术做一个购物车功能的网页,发现node.j ...