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. Go - 路径、目录名、包名、文件名

    先看一个示例: 1.目录结构 bin pkg src pk1 pk2 function1.go function2.go index.go 2.function1.go 文件内容: package p ...

  2. cookie中文乱码

    在学习当中碰到cookie中文乱码问题,问题原因:cookie对中文不太支持,将中文放入cookie中会报错误. 解决办法: 1.编码 将中文进行编码再放入cookie中: String userna ...

  3. DAY5 DVWA之SQL注入演练(low)

    1.设置 把安全等级先调整为low,让自己获得点信心,免得一来就被打脸. 2.测试和分析页面的功能       这里有一个输入框 根据上面的提示,输入用户的id.然后我们输入之后,发现它返回了关于这个 ...

  4. PHP之autoload理解

    举个例子就可以看懂了: 同一目录中有2个文件index.php和test.php,在test.php中定义一个test类. test.php <?php class test{ public f ...

  5. asp:DataGrid之添加asp:CheckBox做全选功能时涉及到绑值问题解决

    最大的意图是为asp:CheckBox的value绑定上自己需要的value值,而不是默认的字符串"on" 参考了这篇文章带Value属性的扩展CheckBox控件,意义不大,换了 ...

  6. 集合List内容

    集合List内容 这次我们学习的主要内容为:集合框架 List 一  集合框架介绍   List集合与数组的区别: 不同点:1> 数组的长度在使用前必须确定,一旦确定不能改变.而List集合长度 ...

  7. 安装numpy库

    1.先安装pip: 下载地址:http://pypi.python.org/pypi/pip#downloads 下载pip-8.1.2.tar.gz(md5,pgp)完成之后,解压到一个文件夹,cm ...

  8. 在hive中遇到的错误

    1:如果在将文件导入到hive表时,查询结果为null(下图) 这个是因为在创建表的时候没有指定列分隔符,hive的默认分隔符是ctrl+a(/u0001)   2.当我复制好几行sql到hive命令 ...

  9. ****CI框架源码阅读笔记7 配置管理组件 Config.php

    http://blog.csdn.net/ohmygirl/article/details/41041597 一个灵活可控的应用程序中,必然会存在大量的可控参数(我们称为配置),例如在CI的主配置文件 ...

  10. 【转载】PyQt QSetting保存设置

    转载地址: http://blog.sina.com.cn/s/blog_4b5039210100h3zb.html 用户对应用程序经常有这样的要求:要求它能记住它的settings,比如窗口大小,位 ...