对应第一行代码的114页

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"><ListViewandroid:id="@+id/list_view"android:layout_width="match_parent"android:layout_height="match_parent" ></ListView></LinearLayout>

fruit_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/fruit_image"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/fruit_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:layout_marginLeft="10dp" /></LinearLayout>

Fruit.java

//定义一个实体类,作为ListView适配器的适配类型
public class Fruit {private String name;private int imageId;public Fruit(String name,int imageId) {this.name=name;this.imageId=imageId;}public String getName(){return name;}public int getImageId() {return imageId;}}

FruitAdapter.java

package com.example.huiqian.listviewdemo1;import android.content.Context;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;public class FruitAdapter extends ArrayAdapter<Fruit> {private int resourceId;public FruitAdapter(Context context,int textViewResourceId, List<Fruit> objects){super(context,textViewResourceId,objects);resourceId=textViewResourceId;}@Overridepublic View getView(int position, View convertView, ViewGroup parent){Fruit fruit=getItem(position);//     View view=LayoutInflater.from(getContext()).inflate(resourceId,parent,false);View view;ViewHolder viewHolder;if(convertView==null){view=LayoutInflater.from(getContext()).inflate(resourceId,parent,false);viewHolder=new ViewHolder();viewHolder.fruitImage=(ImageView)view.findViewById(R.id.fruit_image);viewHolder.fruitName=(TextView)view.findViewById(R.id.fruit_name);view.setTag(viewHolder);}else{view=convertView;viewHolder=(ViewHolder)view.getTag();}//   ImageView fruitImage=(ImageView)view.findViewById(R.id.fruit_image);//  TextView fruitName=(TextView)view.findViewById(R.id.fruit_name);//  fruitImage.setImageResource(fruit.getImageId());//  fruitName.setText(fruit.getName());viewHolder.fruitImage.setImageResource(fruit.getImageId());viewHolder.fruitName.setText(fruit.getName());return  view;}
}

MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {//   private String[] data={"Apple","Banana","Orange","Watermelon","Pear","Grape","Pineapple","Strawberry","Cherry","Mango","Apple","Banana","Orange","Watermelon","Pear","Grape","Pineapple","Strawberry","Cherry","Mango"};private List<Fruit> fruitList=new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initFruits();FruitAdapter adapter=new FruitAdapter(MainActivity.this,  R.layout.fruit_item,fruitList);ListView listView=(ListView)findViewById(R.id.list_view);listView.setAdapter(adapter);}private void initFruits(){for(int i=0;i<10; i++){Fruit apple=new Fruit("Apple",R.drawable.apple_pic);fruitList.add(apple);Fruit banana=new Fruit("banana",R.drawable.banana_pic);fruitList.add(banana);Fruit orange=new Fruit("orange",R.drawable.orange_pic);fruitList.add(orange);Fruit Watermelon=new Fruit("Watermelon",R.drawable.watermelon_pic);fruitList.add(Watermelon);Fruit Pear=new Fruit("Pear",R.drawable.pear_pic);fruitList.add(Pear);Fruit Grape=new Fruit("Grape",R.drawable.grape_pic);fruitList.add(Grape);Fruit Pineapple=new Fruit("Pineapple",R.drawable.pineapple_pic);fruitList.add(Pineapple);Fruit Strawberry=new Fruit("Strawberry",R.drawable.strawberry_pic);fruitList.add(Strawberry);Fruit Cherry=new Fruit("Cherry",R.drawable.cherry_pic);fruitList.add(Cherry);Fruit Mango=new Fruit("Mango",R.drawable.mango_pic);fruitList.add(Mango);}}
}
ViewHolder.java
import android.widget.ImageView;
import android.widget.TextView;public class ViewHolder {ImageView fruitImage;TextView fruitName;
}

第一行代码-ListViewDemo(2)-读书笔记相关推荐

  1. 第一行代码android的读后感,《第一行代码Android》读书笔记

    自学android一段时间了,一开始是看看视频,跟着打打代码,后来也有跟着团队一起做项目,一直都很零散,并没有真正系统的学习过,虽然能跟得上项目,但总觉得基础不牢固扎实,之前有读过郭霖老师博客里的几篇 ...

  2. 《第一行代码Android》读书笔记

    自学android一段时间了,一开始是看看视频,跟着打打代码,后来也有跟着团队一起做项目,一直都很零散,并没有真正系统的学习过,虽然能跟得上项目,但总觉得基础不牢固扎实,之前有读过郭霖老师博客里的几篇 ...

  3. Android 学习之《第一行代码》第二版 笔记(二十三)Material Design 实战 —— 卡片式布局

    实现基础: Android 学习之<第一行代码>第二版 笔记(二十二)Material Design 实战 -- 悬浮按钮和可交互提示 卡片式布局 卡片式布局是 Materials Des ...

  4. 第一行代码第三版笔记

    第3章 Activity 主acitivity:程序运行起来首先启动的activity manifest <?xml version="1.0" encoding=" ...

  5. 《第一行代码》书籍阅读笔记

    注:书籍阅读笔记,方便查看 第1章 开始启程,你的第一行Android代码 第2章 先从看得到的入手,探究活动 1.隐藏标题栏 在onCreate()方法中添加: requestWindowFeatu ...

  6. 《第一行代码》Android学习笔记(6)数据存储

    目录 1. Why 2. 文件存储:简单文本或二进制数据 2.1 将数据存储到文件中 2.2 从文件中读取数据 3. SharedPreferences 存储 3.1数据存取: 3.2 记住密码功能 ...

  7. 从零开始写安卓APP 《第一行代码》笔记 第一周

    这是软件开发课的任务,本人其实不会java也不会安卓开发.以前只做过web端,因为某课程的爆炸实验单人撸了全栈.不过好在很早前就想学了,这里记录一下过程.放的主要是<第一行代码>的一些笔记 ...

  8. 【读书笔记】《第一行代码》

    <第一行代码>读书笔记 一.引言 转眼间,毕业工作已经八个半月了. 但是实际上,随着开发的深入,越发觉得自己知识点和技术栈的浅薄.在学校期间,往往对知识的积累不够重视,认为轮子转起来了就皆 ...

  9. 第一行代码 Android读书笔记(二)

    第一行代码 Android读书笔记 第三章 软件也要拼脸蛋-UI开发的点点滴滴 常用控件的使用方法 详解4种基本布局 自定义控件 最常用和最难用的控件-ListView 更加强大的滚动控件-Recyc ...

最新文章

  1. python3练习-装饰器
  2. Vue刷新页面有哪几种方式
  3. sox处理mp3_SoX 音频处理工具使用方法
  4. 1539. 第 k 个缺失的正整数
  5. python语言的开发者_写给.NET开发者的Python教程(一):引言
  6. python课程开课吧怎么样-律所:我们更想招这样的人……
  7. 第10组17通信三班228网络协议抓包分析
  8. ubuntu 如何确定虚拟机中的网关_如何在虚拟机中安装Kali Linux
  9. 桌面下雪软件测试工程师,桌面下雪
  10. step7设置pcpg_安装STEP7编程软件过程及PG/PC接口设置
  11. Oracle通过身份证求年龄的方法
  12. rocketmq获取消息id_贞炸了!上线之后,消息收不到了
  13. 普歌-码上鸿鹄团队:在Nuxt(vue)渲染模板中使用mock.js随机生成数据
  14. HNUST OJ 2293 贪吃蛇吃苹果
  15. vim简单用法-配合pycharm
  16. P1024 [NOIP2001 提高组] 一元三次方程求解 /1238:一元三次方程求解
  17. ajax 数据接收,前端数据获取之Ajax篇
  18. UIToolkit下一代UI系统
  19. Linux下实现聊天室
  20. java release_java的debug和release编译方式

热门文章

  1. 用jQuery实现qq音乐播放器
  2. 搭建PC网校的4大优势
  3. Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir...
  4. 香港三电视台千人默哀 无线换节目亚视停广告
  5. Time Has Never Been Better for a Gay NFL Player to Come Out
  6. CentOS 6.5系统下载
  7. 代码精进之路-设计模式-(二)结构型模式
  8. 2022中国人力资源管理年度观察
  9. SimpleDateFormat日期转换之12小时和24小时制
  10. Android必会的自动化测试