.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>

.java   //  BaseAdapter

package com.hanqi.application3;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
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 lv_2 = (ListView)findViewById(R.id.lv_2); lf= new ArrayList<Food>(); lf.add(new Food(R.drawable.an1, "内容1","美食1"));
lf.add(new Food(R.drawable.an2, "内容2", "美食2"));
lf.add(new Food(R.drawable.an3, "内容3", "美食3"));
lf.add(new Food(R.drawable.an1, "内容4","美食4"));
lf.add(new Food(R.drawable.an1, "内容5","美食5"));
lf.add(new Food(R.drawable.an2, "内容6","美食6"));
lf.add(new Food(R.drawable.an3, "内容7","美食7"));
lf.add(new Food(R.drawable.an1, "内容8","美食8"));
lf.add(new Food(R.drawable.an1, "内容9","美食9"));
lf.add(new Food(R.drawable.an2, "内容10","美食10"));
lf.add(new Food(R.drawable.an3, "内容11","美食11"));
lf.add(new Food(R.drawable.an1, "内容12","美食12")); //准备数据源
// lm = new ArrayList<Map<String,Object>>();
//
// Map<String, Object> map=new HashMap<String, Object>();
// map.put("image",R.drawable.an1);
// map.put("name","美食图片01");
// map.put("content","看上去很好吃01");
// lm.add(map);
//
// map=new HashMap<String, Object>();
// map.put("image",R.drawable.an2);
// map.put("name","美食图片02");
// map.put("content","看上去很好吃02");
// lm.add(map);
//
// map=new HashMap<String, Object>();
// map.put("image",R.drawable.an3);
// map.put("name","美食图片03");
// map.put("content","看上去很好吃03");
// 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;
}
//给视图适配数据 返回视图
//position 数据的下标
// convertView 可重复使用
//parent 父视图
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//如果 convertView为null 就加载layout文件
if(convertView == null) { //1.获取样式layout文件
LayoutInflater layoutInflater = getLayoutInflater();
convertView = layoutInflater.inflate(R.layout.layout_simple, null);
}
//2.数据和layout文件的视图组件进行绑定
//1)从数据源里获取一行数据
//Map<String, Object> map = lf.get(position);
Food food = lf.get(position);
//2)获取layout文件的视图组件
ImageView iv_2 = (ImageView)convertView.findViewById(R.id.iv_2);
TextView tv_1=(TextView)convertView.findViewById(R.id.tv_1);
TextView tv_2=(TextView)convertView.findViewById(R.id.tv_2);
//3)数据适配
// iv_2.setImageResource((int)map.get("image"));
// tv_1.setText(map.get("name").toString());
// tv_2.setText(map.get("content").toString());
iv_2.setImageResource(food.getImage());
tv_1.setText(food.getName());
tv_2.setText(food.getContent());
//3.返回视图
return convertView; }
}
}
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/an1"
android:id="@+id/iv_2"/>
<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/tv_1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="很好吃的样子"
android:id="@+id/tv_2"/> </LinearLayout> </LinearLayout>

andorid 列表视图 ListView 之BaseAdapter的更多相关文章

  1. andorid 列表视图 ListView 之ArrayAdapter

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

  2. React-Native基础_5.列表视图ListView

    列表视图ListView 用来显示垂直滚动列表,需要指定两个东西,1 数据的来源 dataSource,2 渲染列表的条目布局 rendRow 'use strict' import React, { ...

  3. Android 自学之列表视图ListView和ListActivity

    ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...

  4. Android——列表视图(ListView)

    列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项.在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建:另外一种是让Activ ...

  5. 滚动视图、列表视图[ListView、SimpleAdapter类]

    滚动视图 <ScrollView android: layout_width="fill_parent" android: layout_height="fill_ ...

  6. Android——列表视图 ListView(三)BaseAdapter

    activity_activitybase.xml <?xml version="1.0" encoding="utf-8"?> <ListV ...

  7. 列表视图ListView

    依然是一个listView的Java文件 1 public class ListViewActivity extends Activity { 2 private ListView lv1; 3 @O ...

  8. 列表视图(ListView和ListActivity)

    在ListView中显示网络图片 ImageView 类虽然有一个 setImageUri 方法,但不能直接接受一个由网络地址生成的uri作为参数从而显示图片,我们只好使用其 setImageBitm ...

  9. andorid 列表视图之SimpleAdapter

    .xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android=&qu ...

随机推荐

  1. ArcGIS案例学习笔记2_1_山顶点提取最大值提取

    ArcGIS案例学习笔记2_1_山顶点提取最大值提取 计划时间:第二天上午 目的:最大值提取 教程:Pdf page=343 数据:chap8/ex5/dem.tif 背景知识:等高线种类 基本等高线 ...

  2. CSS 规范 命名规则

    http://nec.netease.com/standard/css-practice.html

  3. 通过网址request到response经历的过程

    前言当我们在浏览器中输入一个网址,比如www.google.cn,浏览器就会加载出百度的主页.那么浏览器背后完成的具体是怎么样的呢? 总结起来大概的流程是这样的: (1)浏览器本身是一个客户端,当你输 ...

  4. spring boot 代理(not eligible for auto-proxying)

    spring 事务机制网上的案例很多,关于事务 不能回滚也有很多的类型,不同的问题有不同的处理方案,本篇博客主要介绍两种事务不能回滚的问题解决方案: 问题一:    在同一个对象中有两个方法,分别未方 ...

  5. lvm磁盘分区

    初始分区情况见下: 创建lvm类型磁盘 创建卷pv 添加pv到vg中,vg名vgroup0 创建lv lvcreate -L 2g -n zookeeper vgroup0 在vg vgroup0中创 ...

  6. python文件操作 二

    问题:在传输的时候对方不知道是以什么格式传给用户,传来传去彼此都忘了什么格式: 在编码的时候:utf8:是3个字符,gbk是2个字符,每个字符数字对应的字符,一段2进制串,如果10个字节全部都是中文, ...

  7. 九 configparser模块

    配置文件如下: # 注释1 ; 注释2 [section1] k1 = v1 k2:v2 user=egon age=18 is_admin=true salary=31 [section2] k1 ...

  8. sqoop2问题解决

    sqoop:000> show version --serverException has occurred during processing command Exception: org.a ...

  9. 三星笔记本安装系统时报错:image failed to verify with * access denied* press any key to continue.

    安装系统从光盘启动报错: 出现黑屏,并且有一个提示框image failed to verify with *access denied*press any key to continue 原因:三星 ...

  10. open suse linux 磁盘分区

    在opensuse 中我是这样对磁盘进行配置的 先添加一块磁盘任意大小 reboot 重启 ls /dev/ | grep sd 可以看到有一块sdb 的磁盘没有分区 fdisk /dev/sdb n ...