.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ListView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:id="@+id/lv_2">
  6.  
  7. </ListView>

.java   //  BaseAdapter

  1. package com.hanqi.application3;
  2.  
  3. import android.os.Bundle;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.BaseAdapter;
  9. import android.widget.ImageView;
  10. import android.widget.ListView;
  11. import android.widget.TextView;
  12.  
  13. import java.util.ArrayList;
  14. import java.util.List;
  15.  
  16. public class UIActivity5 extends AppCompatActivity {
  17.  
  18. //List<Map<String,Object>> lm;
  19. List<Food> lf;
  20. @Override
  21. protected void onCreate(Bundle savedInstanceState) {
  22. super.onCreate(savedInstanceState);
  23. setContentView(R.layout.activity_ui5);
  24.  
  25. ListView lv_2 = (ListView)findViewById(R.id.lv_2);
  26.  
  27. lf= new ArrayList<Food>();
  28.  
  29. lf.add(new Food(R.drawable.an1, "内容1","美食1"));
  30. lf.add(new Food(R.drawable.an2, "内容2", "美食2"));
  31. lf.add(new Food(R.drawable.an3, "内容3", "美食3"));
  32. lf.add(new Food(R.drawable.an1, "内容4","美食4"));
  33. lf.add(new Food(R.drawable.an1, "内容5","美食5"));
  34. lf.add(new Food(R.drawable.an2, "内容6","美食6"));
  35. lf.add(new Food(R.drawable.an3, "内容7","美食7"));
  36. lf.add(new Food(R.drawable.an1, "内容8","美食8"));
  37. lf.add(new Food(R.drawable.an1, "内容9","美食9"));
  38. lf.add(new Food(R.drawable.an2, "内容10","美食10"));
  39. lf.add(new Food(R.drawable.an3, "内容11","美食11"));
  40. lf.add(new Food(R.drawable.an1, "内容12","美食12"));
  41.  
  42. //准备数据源
  43. // lm = new ArrayList<Map<String,Object>>();
  44. //
  45. // Map<String, Object> map=new HashMap<String, Object>();
  46. // map.put("image",R.drawable.an1);
  47. // map.put("name","美食图片01");
  48. // map.put("content","看上去很好吃01");
  49. // lm.add(map);
  50. //
  51. // map=new HashMap<String, Object>();
  52. // map.put("image",R.drawable.an2);
  53. // map.put("name","美食图片02");
  54. // map.put("content","看上去很好吃02");
  55. // lm.add(map);
  56. //
  57. // map=new HashMap<String, Object>();
  58. // map.put("image",R.drawable.an3);
  59. // map.put("name","美食图片03");
  60. // map.put("content","看上去很好吃03");
  61. // lm.add(map);
  62. lv_2.setAdapter(new MyBaseAdapter());
  63.  
  64. }
  65.  
  66. class MyBaseAdapter extends BaseAdapter
  67. {
  68. //获取要显示的列表的行数
  69. @Override
  70. public int getCount() {
  71. return lf.size();
  72. }
  73. //获取对应下标行
  74. @Override
  75. public Object getItem(int position) {
  76. return lf.get(position);
  77. }
  78. //获取对应下标行的id
  79. @Override
  80. public long getItemId(int position) {
  81. return position;
  82. }
  83. //给视图适配数据 返回视图
  84. //position 数据的下标
  85. // convertView 可重复使用
  86. //parent 父视图
  87. @Override
  88. public View getView(int position, View convertView, ViewGroup parent) {
  89. //如果 convertView为null 就加载layout文件
  90. if(convertView == null) {
  91.  
  92. //1.获取样式layout文件
  93. LayoutInflater layoutInflater = getLayoutInflater();
  94. convertView = layoutInflater.inflate(R.layout.layout_simple, null);
  95. }
  96. //2.数据和layout文件的视图组件进行绑定
  97. //1)从数据源里获取一行数据
  98. //Map<String, Object> map = lf.get(position);
  99. Food food = lf.get(position);
  100. //2)获取layout文件的视图组件
  101. ImageView iv_2 = (ImageView)convertView.findViewById(R.id.iv_2);
  102. TextView tv_1=(TextView)convertView.findViewById(R.id.tv_1);
  103. TextView tv_2=(TextView)convertView.findViewById(R.id.tv_2);
  104. //3)数据适配
  105. // iv_2.setImageResource((int)map.get("image"));
  106. // tv_1.setText(map.get("name").toString());
  107. // tv_2.setText(map.get("content").toString());
  108. iv_2.setImageResource(food.getImage());
  109. tv_1.setText(food.getName());
  110. tv_2.setText(food.getContent());
  111. //3.返回视图
  112. return convertView;
  113.  
  114. }
  115. }
  116. }
  1. layout_simple.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content">
  5.  
  6. <ImageView
  7. android:layout_width="70dp"
  8. android:layout_height="70dp"
  9. android:src="@drawable/an1"
  10. android:id="@+id/iv_2"/>
  11. <LinearLayout
  12. android:layout_width="match_parent"
  13. android:layout_height="wrap_content"
  14. android:orientation="vertical"
  15. android:layout_gravity="center_vertical"
  16. android:layout_marginLeft="20dp">
  17. <TextView
  18. android:layout_width="wrap_content"
  19. android:layout_height="wrap_content"
  20. android:text="美食图片"
  21. android:id="@+id/tv_1"/>
  22. <TextView
  23. android:layout_width="wrap_content"
  24. android:layout_height="wrap_content"
  25. android:text="很好吃的样子"
  26. android:id="@+id/tv_2"/>
  27.  
  28. </LinearLayout>
  29.  
  30. </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. C# 保证数据长度相同

    /// <summary> /// 保证数据长度相同 /// </summary> /// <param name="obj"></par ...

  2. Python 测试

    (1)import doctest doctest.testmod(verbose=True) (2) pip install tests

  3. pandas 数据结构基础与转换

    pandas 最常用的三种基本数据结构: 1.dataFrame: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Data ...

  4. 大数据入门到精通3-SPARK RDD filter 以及 filter 函数

    一.如何处理RDD的filter 1. 把第一行的行头去掉 scala> val collegesRdd= sc.textFile("/user/hdfs/CollegeNavigat ...

  5. 使用solr界面管理工具创建core 不能用的解决方法

    可以用命令行进行创建  首先要先进入 solr所属的 用户 solr 中 ./solr create -c solr_sample 然后创建 你的core  显示以下信息 就创建成功了 成功之之后可以 ...

  6. C#调用dll提示"试图加载格式不正确的程序"原因及解决方法

    转载:https://blog.csdn.net/songyi160/article/details/51354660 程序在32位操作系统上运行正常,在64位操作系统上运行读卡功能提示”试图加载格式 ...

  7. 牛客网练习赛44-B(快速幂+模拟)

    题目链接:https://ac.nowcoder.com/acm/contest/548/B 题意:计算m/n小数点后k1位到k2位,1≤m≤n≤109,1<=k1<=k2<=109 ...

  8. WAS 忘记密码

    一.重置密码 1.首先关闭was,ps –ef|grep java 查看java进程号,然后kill -9 XXXX杀掉进程即可.或者使用命令./stopServer.sh server1 2.取消控 ...

  9. MongoDB之Limit选取Skip跳过Sort排序

    1.Limit选取 我要从Document中取出多少个 只要2条Document db.Wjs.find().limit(2) 2.Skip跳过 我要跳过多少个Document 我要跳过前两个Docu ...

  10. 像素 转换 px dp

    public static int dip2px(Context context, float dpValue){ final float scale = context.getResources() ...