andorid 列表视图 ListView 之BaseAdapter
.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的更多相关文章
- andorid 列表视图 ListView 之ArrayAdapter
activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...
- React-Native基础_5.列表视图ListView
列表视图ListView 用来显示垂直滚动列表,需要指定两个东西,1 数据的来源 dataSource,2 渲染列表的条目布局 rendRow 'use strict' import React, { ...
- Android 自学之列表视图ListView和ListActivity
ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...
- Android——列表视图(ListView)
列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项.在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建:另外一种是让Activ ...
- 滚动视图、列表视图[ListView、SimpleAdapter类]
滚动视图 <ScrollView android: layout_width="fill_parent" android: layout_height="fill_ ...
- Android——列表视图 ListView(三)BaseAdapter
activity_activitybase.xml <?xml version="1.0" encoding="utf-8"?> <ListV ...
- 列表视图ListView
依然是一个listView的Java文件 1 public class ListViewActivity extends Activity { 2 private ListView lv1; 3 @O ...
- 列表视图(ListView和ListActivity)
在ListView中显示网络图片 ImageView 类虽然有一个 setImageUri 方法,但不能直接接受一个由网络地址生成的uri作为参数从而显示图片,我们只好使用其 setImageBitm ...
- andorid 列表视图之SimpleAdapter
.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android=&qu ...
随机推荐
- C# 保证数据长度相同
/// <summary> /// 保证数据长度相同 /// </summary> /// <param name="obj"></par ...
- Python 测试
(1)import doctest doctest.testmod(verbose=True) (2) pip install tests
- pandas 数据结构基础与转换
pandas 最常用的三种基本数据结构: 1.dataFrame: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Data ...
- 大数据入门到精通3-SPARK RDD filter 以及 filter 函数
一.如何处理RDD的filter 1. 把第一行的行头去掉 scala> val collegesRdd= sc.textFile("/user/hdfs/CollegeNavigat ...
- 使用solr界面管理工具创建core 不能用的解决方法
可以用命令行进行创建 首先要先进入 solr所属的 用户 solr 中 ./solr create -c solr_sample 然后创建 你的core 显示以下信息 就创建成功了 成功之之后可以 ...
- C#调用dll提示"试图加载格式不正确的程序"原因及解决方法
转载:https://blog.csdn.net/songyi160/article/details/51354660 程序在32位操作系统上运行正常,在64位操作系统上运行读卡功能提示”试图加载格式 ...
- 牛客网练习赛44-B(快速幂+模拟)
题目链接:https://ac.nowcoder.com/acm/contest/548/B 题意:计算m/n小数点后k1位到k2位,1≤m≤n≤109,1<=k1<=k2<=109 ...
- WAS 忘记密码
一.重置密码 1.首先关闭was,ps –ef|grep java 查看java进程号,然后kill -9 XXXX杀掉进程即可.或者使用命令./stopServer.sh server1 2.取消控 ...
- MongoDB之Limit选取Skip跳过Sort排序
1.Limit选取 我要从Document中取出多少个 只要2条Document db.Wjs.find().limit(2) 2.Skip跳过 我要跳过多少个Document 我要跳过前两个Docu ...
- 像素 转换 px dp
public static int dip2px(Context context, float dpValue){ final float scale = context.getResources() ...