activity_main.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="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="45dp"android:text="购物商城"android:textSize="18sp"android:textColor="#FFFFFF"android:background="#FF8F03"android:gravity="center"/><ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="wrap_content"/>
</LinearLayout>

list_item.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="16dp"><ImageViewandroid:id="@+id/iv"android:layout_width="120dp"android:layout_height="90dp"android:layout_centerVertical="true" /><RelativeLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_marginLeft="10dp"android:layout_toRightOf="@+id/iv"><TextViewandroid:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="桌子"android:textColor="#000000"android:textSize="20sp" /><TextViewandroid:id="@+id/tv_price"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/title"android:layout_marginTop="10dp"android:text="价格:"android:textColor="#FF8F03"android:textSize="20sp" /><TextViewandroid:id="@+id/price"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/title"android:layout_marginTop="10dp"android:layout_toRightOf="@+id/tv_price"android:text="1000"android:textColor="#FF8F03"android:textSize="20sp" /></RelativeLayout>
</RelativeLayout>

MainActivity.java代码如下:

package com.itcast.listview;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {private ListView mListView;//需要适配的数据private String[] titles = { "桌子", "苹果", "蛋糕", "线衣", "猕猴桃","围巾"};private String[] prices = { "1800元", "10元/kg", "300元", "350元", "10元/kg","280元"};//图片集合private int[] icons = {R.drawable.table,R.drawable.apple,R.drawable.cake,R.drawable.wireclothes,R.drawable.kiwifruit,R.drawable.scarf};protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化ListView控件mListView = (ListView) findViewById(R.id.lv);//创建一个Adapter的实例MyBaseAdapter mAdapter = new MyBaseAdapter();//设置AdaptermListView.setAdapter(mAdapter);}//创建一个类继承BaseAdapterclass MyBaseAdapter extends BaseAdapter {//得到item的总数@Overridepublic int getCount() {//返回ListView Item条目的总数return titles.length;}//得到Item代表的对象@Overridepublic Object getItem(int position) {//返回ListView Item条目代表的对象return titles[position];}//得到Item的id@Overridepublic long getItemId(int position) {//返回ListView Item的idreturn position;}//得到Item的View视图@Overridepublic View getView(int position, View convertView, ViewGroup parent) {/*   //将list_item.xml文件找出来并转换成View对象View view  = View.inflate(MainActivity.this,R.layout.list_item, null);//找到list_item.xml中创建的TextViewTextView title = (TextView) view.findViewById(R.id.title);TextView price = (TextView) view.findViewById(R.id.price);ImageView iv = (ImageView) view.findViewById(R.id.iv);title.setText(titles[position]);price.setText(prices[position]);iv.setBackgroundResource(icons[position]);return view;*/ViewHolder holder = null;if(convertView == null){//将list_item.xml文件找出来并转换成View对象convertView  = View.inflate(MainActivity.this, R.layout.list_item, null);//找到list_item.xml中创建的TextViewholder = new ViewHolder();holder.title = (TextView) convertView.findViewById(R.id.title);holder.price = (TextView) convertView.findViewById(R.id.price);holder.iv = (ImageView) convertView.findViewById(R.id.iv);convertView.setTag(holder);}else{holder = (ViewHolder) convertView.getTag();}holder.title.setText(titles[position]);holder.price.setText(prices[position]);holder.iv.setBackgroundResource(icons[position]);return convertView;}}static class ViewHolder{TextView title;TextView price;ImageView iv;}
}

实现效果如下:

《Android移动应用基础教程》之Android购物商城相关推荐

  1. 《Android 移动应用基础教程(Android Studio)(第2版)》【课本客观题】+【学习通2023春】【参考答案】

    文章目录 超星学习通智能终端软件开发(基于Android Studio环境)章节作业(39) 一 二 三 四 五 六 课本一 课本二 课本三 课本四 课本五 课本六(无) 课本七 课本八 课本九 课本 ...

  2. android移动应用基础教程源代码,Android移动应用基础教程 【程序活动单元Activity】...

    本章目录 一.Activity的生命周期 1.生命周期状态 2 .生命周期方法 3.横竖屏切换时的生命周期 二.Activity的创建配置和关闭 1.Activity的创建 2.配置Activity ...

  3. Android移动应用基础教程【Android事件处理】

    本章目录 一.事件处理概述 二.基于回调机制的事件处理 三.基于监听接口机制的事件处理 四.手势 1.手势简介 2.手势检测 3.使用GestureLibrary类添加手势 4.使用Gestures ...

  4. 创建android程序时 默认使用布局是,《Android移动应用基础教程》中国铁道出版社课后习题(附答案)...

    <Android移动应用基础教程>中国铁道出版社课后习题(附答案) 第2章Android UI开发 一.填空题 1.Android中的布局分为6种,分别是RelativeLayout.Li ...

  5. 《Android移动应用基础教程》(Android Studio)(第二版)黑马程序员 课后习题答案

    <Android移动应用基础教程>(Android Studio)(第二版)黑马程序员 课后习题答案 目录 第1章 Android基础入门 第2章 Android常见界面布局 第3章 An ...

  6. 《Android移动应用基础教程》(Android Studio)(第二版)黑马教程 课后题答案 第7章

    <Android移动应用基础教程>(Android Studio)(第二版)黑马教程 课后题答案 第7章 一.判断题 1.对 2.对 3.对 4.错 5.对 二.选择题 1.C 2.B 3 ...

  7. android 帐号密码xml,《Android移动应用基础教程》之保存QQ账号和密码

    FileSaveQQ.java package njitt.software.saveqq; import android.content.Context; import java.io.FileIn ...

  8. android移动应用基础教程--qq账号与密码

    android移动应用基础教程--qq账号与密码 android移动应用基础教程p115案例 实战演练-保存QQ账号密码. activity_main.xml <?xml version=&qu ...

  9. 《Android移动应用基础教程》(Android Studio)(第二版)黑马教程 课后题答案第一章

    <Android移动应用基础教程>(Android Studio)(第二版)黑马教程 课后题答案 第一章 一.填空题 1.dex 2.@color 3.AndroidManifest.xm ...

  10. Android移动应用基础教程(第2版)教学视频、课后题答案、教材源码

    Android移动应用基础教程(第2版) 内含教学视频.课后题答案.教材源码 百度网盘链接: https://pan.baidu.com/s/1loTwVqVC8gX1jY5HD0B1rg 提取码:L ...

最新文章

  1. tomcat远程调试
  2. 查看并修改mysql的默认引擎
  3. golang 结构体和数据库表字段 反射自动映射 sqlmapper库 简介
  4. 那年大一在图书馆作死的大学高数笔记 | 函数和极限
  5. FileNotFoundError: [Errno 2] No such file or directory: 'traingingDigits/0_0.txt'
  6. 我不是在吓你,但是区块链,可能真的是普通人弯道超车的最后一个机会了。
  7. python logging模块 默认_python logging模块
  8. php根据键值去除数组中的某个元素_php数组删除元素 删除指定键值元素
  9. 语音 识别_语音识别_qq语音识别 - 云+社区 - 腾讯云
  10. 3.Knockout.Js(属性绑定)
  11. axios.js post 后台木有数据
  12. 课程设计哈夫曼编/译码系统
  13. 现行一级学科和二级学科目录(学位授予和人才培养学科目录)
  14. win10开机登录不需要密码默认账号
  15. word树状分支图_word中插入树状图的两种方法
  16. 关于nginx日志的HTTP 499状态码
  17. word中如果出现某一行突然文字突然间距增大,两种解决方案
  18. linux测试dvi接口,支持Linux系统的高清DVI采集卡推荐
  19. 打入苹果ipad的大陆芯片供应商
  20. PHP MVC及模板引擎

热门文章

  1. 英特尔Coffee Lake曝光:主流6核 依旧14nm
  2. 2019 年第 7 周 DApp 影响力排行榜 | TokenInsight
  3. 苹果 iTunes connect 下架APP
  4. 对rman命令report obsolete的一点说明
  5. 火影推荐程序连载14-Vue开源项目使用探索
  6. Google天气和股票API
  7. 30个HTML+CSS前端开发案例(完结篇)
  8. HTML 基础- 4个实例
  9. java应届生找工作难吗?
  10. Ubuntu16.04+CUDA8.0+cudnn5.1+TensorFlow-GPU详细安装步骤