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. 编译PHP 报错:node.c: In function dom_canonicalization

    编译PHP 报错:node.c: In function dom_canonicalization  /opt/php-5.2.17/ext/dom/node.c:1953: error: deref ...

  2. plist中的中文数据

    直接打印那个值就会显示中文了,你打引整个 plist 文件的内容,则会显示出 NSUTF8 编码后的数据:请放心使用:

  3. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  4. Dynamic range compression

    这段时间终于把手头的东西都搞完了,还剩下一个AEC这个模块,这个模块跟整个系统机制有很大关系,单独的模块意义不大. 另外,刚写完一个分类器,希望能大幅提升音乐流派分类的准确率. 下周正式开搞AEC,把 ...

  5. 无法启动"D\projects\hello\Debug\hello.exe" 系统找不到指定的文件。[LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏]

    这两天安装Visual Studio遇到这样的一个问题,用自己的电脑和公司的电脑都出现同样的问题.两台电脑都是新系统,按理来说是没有问题的.但是一出现问题,对于我这个小白来说,还是耗费了挺多精力都无果 ...

  6. SQL Server 日期和时间函数

    http://www.cnblogs.com/adandelion/archive/2006/11/08/554312.html 1.常用日期方法(下面的GetDate() = '2006-11-08 ...

  7. ubuntu下安装nodejs,无node情况

      Updating nodejs solved the issue: npm cache clean -f npm install -g n n stable node --version node ...

  8. JS面试题-算法台阶问题

    有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多步,每次走2步最少步:然后 ...

  9. 统一配置管理-百度disconf

    之前一直采用properties文件管理配置信息,若是集群则每个机器上都要拷贝一份,每次修改也需要依次修改.一直在寻找统一修改,实时生效,方便修改,分环境分系统的配置管理,自己也在整理设计,若找不到合 ...

  10. python:列表与元组

    1.python包含六种内建的序列,列表和元组是其中的两种,列表可以修改,元组则不能 2.通用序列操作 2.1 索引:和C#的区别是索引可以为负数,最后一个元素索引为-1,索引超出范围会报错 例:&g ...