layout_simple.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="wrap_content">
<ImageView
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/yuantu"
android:id="@+id/lv2"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:layout_marginLeft="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="美食图片"
android:id="@+id/tv1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="很好吃啊"
android:id="@+id/tv2"/> </LinearLayout> </LinearLayout>

activity_ui5.xml

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv_2"> </ListView>

UIActity.java

package com.hanqi.test5;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView; import java.util.ArrayList;
import java.util.List; public class UIActivity5 extends AppCompatActivity
{ //数据源
//List<Map<String,Object>> lm;
List<Food> lf; @Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ui5); //获取ListView
ListView lv_2 =(ListView)findViewById(R.id.lv_2);
//准备数据源
lf = new ArrayList<Food>();
lf.add(new Food(R.drawable.yuantu,"内容1","美食1"));
lf.add(new Food(R.drawable.yuantu,"内容2","美食2"));
lf.add(new Food(R.drawable.yuantu,"内容3","美食3"));
lf.add(new Food(R.drawable.yuantu,"内容4","美食4"));
/* lm =new ArrayList<Map<String,Object>>();
Map<String,Object> map = new Hashtable<String, Object>(); map.put("image",R.drawable.yuantu);
map.put("name","美食图片01");
map.put("content","很好吃啊01");
lm.add(map); map = new Hashtable<String, Object>();
map.put("image",R.drawable.yuantu);
map.put("name","美食图片02");
map.put("content","很好吃啊02");
lm.add(map); map = new Hashtable<String, Object>();
map.put("image",R.drawable.yuantu);
map.put("name","美食图片03");
map.put("content","很好吃啊03");
lm.add(map); map = new Hashtable<String, Object>();
map.put("image",R.drawable.yuantu);
map.put("name","美食图片04");
map.put("content","很好吃啊04");
lm.add(map);*/ lv_2.setAdapter(new MyBaseAdapter()); }
class MyBaseAdapter extends BaseAdapter
{
//获取要显示的行数
@Override
public int getCount()
{ return lf.size();
} //获取对应下标的行
@Override
public Object getItem(int position)
{
return lf.get(position);
}
//获取对应行的id
@Override
public long getItemId(int position)
{
return position;
}
//给视图适配数据,返回视图
//3个参数:1.position(数据的下标)
//2.convertView(可重复使用的视图)
//3.parent(父视图)
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
//如果convertView为空,就加载layout文件
if (convertView == null)
{
Log.e("TAG","position = "+position); //1.获取样式文件(layout文件)
LayoutInflater layoutInflater = getLayoutInflater();
convertView = layoutInflater.inflate(R.layout.layout_simple, null);
}
//2.数据和layout文件的视图组件进行绑定
//1)从数据源里获取一行数据
//Map<String,Object> map = lm.get(position); Food food = lf.get(position); //2)获取layout文件的视图组件
ImageView iv_2 = (ImageView)convertView.findViewById(R.id.lv2);
TextView tv1 = (TextView)convertView.findViewById(R.id.tv1);
TextView tv2 = (TextView)convertView.findViewById(R.id.tv2); //3)绑定(数据适配)
// iv_2.setImageResource((int) map.get("image"));
// tv1.setText(map.get("name").toString());
// tv2.setText(map.get("content").toString()); iv_2.setImageResource((int) food.getImage());
tv1.setText(food.getName());
tv2.setText(food.getContent()); //3.返回视图
return convertView;
}
}
}

效果图:

Android课程---优化ListView列表视图(2)的更多相关文章

  1. Android课程---优化ListView列表视图

    activity_ui4.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...

  2. Android课程---关于ListView列表视图的学习

    activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...

  3. Android之怎样使用ListView列表视图

    ListView 列表视图创建方法: (1)直接使用ListView 组件创建 (2)让Activity继承ListActivity实现 第一种:在XML中直接使用ListView 组件创建 在val ...

  4. Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  5. Android UI组件----ListView列表控件详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  6. Android ListView 列表视图

    列表显示的三个元素 ListView : 用来显示列表的View Adapter : 适配器 用来把数据映射到ListView 上的中介 Data: 数据 将被映射的字符串,图片或者基本组件等资源 根 ...

  7. Android性能优化--Listview优化

    ListView的工作原理 首先来了解一下ListView的工作原理(可参见http://mobile.51cto.com/abased-410889.htm),如图: ListView 针对每个it ...

  8. 优化listview列表速度

    listview是我们常用的显示列表的组件,功能非常强大,但也需要注意优化: 1 adapter的getview中进行视图缓存2 图片进行异步下载及缓存3 快速滑动时不显示图片4 不要再adapter ...

  9. Android课程---关于GridView网格视图的学习

    activity_ui6.xml <?xml version="1.0" encoding="utf-8"?> <GridView xmlns ...

随机推荐

  1. Mac Pro 软件安装/个性化配置 汇总

    苹果产品维修 一.Spotlight 搜索程序和文档 Spotlight是最最常用的东西, 类似Windows开始菜单中的搜索.  可以用来搜索文档,也可以搜索本机的程序, 这样可以快速启动. 点击右 ...

  2. Effective C++ 34 区分接口继承和实现继承

    public继承从根本上讲,有两部分:接口继承和实现继承.两者之前的区别很像函数声明与函数定义. 具体设计中,会呈现三种形式:derived class只继承成员函数的接口(纯虚函数):derived ...

  3. 1.3为WebApi创建帮助文档

    当你创建一个网络 API 时,它很有用来创建一个帮助页,以便其他开发人员将知道如何调用您的 API.您可以创建的所有文档手动,但它是自动生成尽可能多地更好. 为了简化这一任务,ASP.NET Web ...

  4. MySQL 慢查询日志分析及可视化结果

    MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...

  5. 表格中每行的checkbox只能选中其中一个jquery实现

    HTML代码: <span class="number">12.</span> <div class="survey_txt mgl20&q ...

  6. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  7. 网络知识学习4---(DNS的作用)

    1.DNS 简介 DNS是域名解析协议 在互联网中通过IP 地址来进行通信.但是IP 地址的表示形式是数字,很难进行记忆(比如116.213.120.232),所以为每个 IP取一个人类更易记忆的域名 ...

  8. 一键删除.svn文件bat脚本

    用过SVN或CVS版本控制工具的朋友,在享受着它们给我们带来的方便的同时,也许也在为这么一件事情苦恼: 如果某个目录在SVN或CVS版本控制工具的控制之下时.该目录下以及该子孙目录下都会有一个.svn ...

  9. [译]:Orchard入门——手动安装Orchard

    原文链接:Manually Installing Orchard 文章内容基于Orchard 1.8版本 本文将演示通过zip安装包安装Orchard所需要的步骤. 本文包括如下三种不同的Orchar ...

  10. devpress 的gridview 控件的行拖拽 z

    首先,添加引用:using DevExpress.XtraGrid.Views.Grid.ViewInfo;               gridControl1.AllowDrop = true; ...