Android课程---优化ListView列表视图(2)
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)的更多相关文章
- Android课程---优化ListView列表视图
activity_ui4.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...
- Android课程---关于ListView列表视图的学习
activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...
- Android之怎样使用ListView列表视图
ListView 列表视图创建方法: (1)直接使用ListView 组件创建 (2)让Activity继承ListActivity实现 第一种:在XML中直接使用ListView 组件创建 在val ...
- Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
- Android UI组件----ListView列表控件详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android ListView 列表视图
列表显示的三个元素 ListView : 用来显示列表的View Adapter : 适配器 用来把数据映射到ListView 上的中介 Data: 数据 将被映射的字符串,图片或者基本组件等资源 根 ...
- Android性能优化--Listview优化
ListView的工作原理 首先来了解一下ListView的工作原理(可参见http://mobile.51cto.com/abased-410889.htm),如图: ListView 针对每个it ...
- 优化listview列表速度
listview是我们常用的显示列表的组件,功能非常强大,但也需要注意优化: 1 adapter的getview中进行视图缓存2 图片进行异步下载及缓存3 快速滑动时不显示图片4 不要再adapter ...
- Android课程---关于GridView网格视图的学习
activity_ui6.xml <?xml version="1.0" encoding="utf-8"?> <GridView xmlns ...
随机推荐
- PHP中的变量与常量详解
几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...
- http_build_query 的一个问题
当我们使用CURL来post数据的时候,需要设置post的数据 curl_setopt($c, CURLOPT_POSTFIELDS, $post_data); 假如这里的$data是 $data = ...
- BlockingQueue 阻塞队列,很有用的一种
BlockingQueue的核心方法:放入数据: offer(anObject):表示如果可能的话,将anObject加到BlockingQueue里,即如果BlockingQueue可以容纳, 则返 ...
- 周末娱乐一下--------恶搞windows小脚本
下面这是个循环DOS命令,使用了C中的goto语句 echo命令式输出命令 set命令是设置命令 var是变量,初始为0 :continue是一个用于goto的标示. %var%输出变量名,%var% ...
- nginx配置301重定向
1. 简介 301重定向可以传递权重,相比其他重定向,只有301是最正式的,不会被搜索引擎判断为作弊 2. 栗子 savokiss.com 301到 savokiss.me 3. nginx默认配置方 ...
- java 处理XML(dom4j-1.6.1)
java 处理XML(dom4j-1.6.1) Java 处理xml有很多框架,今天使用主流框架dom4j-1.6.1 下载地址:http://www.dom4j.org/dom4j-1.6.1/ D ...
- Git教程推荐
推荐:廖雪峰的官方网站-Git教程,面向初学者,浅显易懂.
- GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.最大的优点是在不损伤数据的前提下调整存储空间的大小. 本篇主要讲述L ...
- eclipse远程连接hive
创建项目,添加jar包,hive的s上,所以也需要hadoop的一些jar 这个图片是从网上找的,我直接使用的以前hadoop的项目 创建测试类,写测试代码 //获取jdbc链接 private ...
- centos7修改主机名
临时修改: hostname centos7 永久修改: # hostnamectl set-hostname cen07