当前位置:   article > 正文

AndroidStudio案例——图书列表_androidstudio文章列表

androidstudio文章列表

目录

实验内容及步骤

步骤:

运行结果:

1、配置drawable文件

2、配置listiem.xml文件

 3、导入到activity_main.xml中

4、配置Java代码

【Java代码详解】

1.定义资源数组

 2.新建list数组

 3.赋值键值对,自定义名称为键,资源数组为值

4. 使用SimpleAdapter创建ListView

SimpleAdapter的用法

SimpleAdapter (Context context, List> data, int resource, String[] from, int[] to)

 6.为ListView设置Adapter

为wListView设置Adaweipter为ListView


实验内容及步骤

在layout文件夹的布局文件activity_main.xml中设计如图界面,利用ListView组件模仿”当当APP”中的图书列表设计图书榜单显示的APP界面

步骤:

  • 在主布局文件中设置ListView组件。
  • 建立listitem布局文件,设计列表项布局
  • MainActivity中根据相关资源对象定义图书适配器(Adapter)。

运行结果:

1、配置drawable文件

将book_img1~5.jpg:图书封面照片,index_star1~5.png:星级评定图片复制到drawable文件夹中

链接:图片资源链接
提取码:1234 

2、配置listiem.xml文件

在layout文件夹中新建listiem.xml文件,写列表的每一项的UI

  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="match_parent"
  5. android:orientation="horizontal"
  6. android:padding="10dp">
  7. <ImageView
  8. android:id="@+id/header"
  9. android:layout_width="240dp"
  10. android:layout_height="100dp"
  11. android:layout_weight="1.5"
  12. android:scaleType="centerCrop"
  13. android:background="#FF6200EE"
  14. android:src="@drawable/book_1"/>
  15. <RelativeLayout
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:layout_weight="1">
  19. <TextView
  20. android:id="@+id/name"
  21. android:layout_width="match_parent"
  22. android:layout_height="20dp"
  23. android:textColor="@color/black"
  24. android:paddingLeft="10dp"
  25. android:text="Python编程从入到实践第二版"
  26. android:textSize="18dp" />
  27. <ImageView
  28. android:id="@+id/star"
  29. android:layout_width="65dp"
  30. android:layout_height="20dp"
  31. android:paddingLeft="10dp"
  32. android:src="@drawable/index_star5"
  33. android:scaleType="centerInside"
  34. android:layout_below="@+id/name"/>
  35. <TextView
  36. android:id="@+id/pl"
  37. android:layout_width="wrap_content"
  38. android:layout_height="20dp"
  39. android:paddingLeft="10dp"
  40. android:text="201759条评论"
  41. android:textSize="14dp"
  42. android:layout_below="@+id/name"
  43. android:layout_toRightOf="@+id/star"/>
  44. <TextView
  45. android:id="@+id/author"
  46. android:layout_width="match_parent"
  47. android:layout_height="wrap_content"
  48. android:paddingLeft="10dp"
  49. android:text="作者:[美]埃里克·马瑟斯(Eric Matthes)"
  50. android:textSize="14dp"
  51. android:layout_below="@+id/star"/>
  52. <TextView
  53. android:id="@+id/cb"
  54. android:layout_width="match_parent"
  55. android:layout_height="20dp"
  56. android:paddingLeft="10dp"
  57. android:text="出版社:人民邮电出版社"
  58. android:textSize="14dp"
  59. android:layout_below="@id/author"/>
  60. <TextView
  61. android:id="@+id/flag"
  62. android:layout_width="30dp"
  63. android:layout_height="20dp"
  64. android:paddingLeft="10dp"
  65. android:text="¥"
  66. android:textSize="18dp"
  67. android:textColor="@color/black"
  68. android:layout_below="@+id/cb"/>
  69. <TextView
  70. android:id="@+id/price"
  71. android:layout_width="match_parent"
  72. android:layout_height="20dp"
  73. android:paddingLeft="10dp"
  74. android:text="54.9"
  75. android:textSize="18dp"
  76. android:textColor="@color/black"
  77. android:layout_below="@+id/cb"
  78. android:layout_toRightOf="@+id/flag"/>
  79. </RelativeLayout>
  80. </LinearLayout>

可以看到排版如图

 

 3、导入到activity_main.xml中

在activity_main.xml文件中,定义一个ListView

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".MainActivity">
  8. <!-- 定义一个ListView -->
  9. <ListView
  10. android:id="@+id/listView"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content" >
  13. </ListView>
  14. </LinearLayout>

4、配置Java代码

在MainActivity.java中写道

  1. package com.example.a1025;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.widget.ListView;
  5. import android.widget.SimpleAdapter;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. public class MainActivity extends AppCompatActivity {
  11. private String[] names = new String[]{"Python编程从入门到实践第2版","深入理解计算机系统","机器学习","Redis设计与实现","深入理解Java虚拟机:JVM高级特性与实践"};
  12. private int[] stars = new int[]{R.drawable.index_star5,R.drawable.index_star3,R.drawable.index_star4,R.drawable.index_star3,R.drawable.index_star5};
  13. private String[] pl = new String[]{"201759条评论","30097条评论","3347条评论","13161条评论","18990条评论"};
  14. private String[] author = new String[]{"作者:[美]埃里克·马瑟斯(Eric Matthes)","作者:(美)兰德尔 E.布莱恩特(Randal E.Bryant)等","作者:周志华","作者:黄健宏","作者:周志明"};
  15. private String[] cbs = new String[]{"出版社:人民邮电出版社","出版社:机械工业出版社","出版社:清华大学出版社","出版社:机械工业出版社","出版社:机械工业出版社"};
  16. private double[] price = new double[]{54.90,65.50,54.00,39.5,64.50};
  17. private int[] imageIds = new int[]{R.drawable.book_1,R.drawable.book_2,R.drawable.book_3,R.drawable.book_4,R.drawable.book_5};
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_main);
  22. List<Map<String,Object>> listitem=new ArrayList<>();
  23. for(int i=0;i<5;i++){
  24. Map<String,Object>map_list=new HashMap<>();
  25. map_list.put("header",imageIds[i]);
  26. map_list.put("Name",names[i]);
  27. map_list.put("Star",stars[i]);
  28. map_list.put("pl",pl[i]);
  29. map_list.put("author",author[i]);
  30. map_list.put("cbs",cbs[i]);
  31. map_list.put("price",price[i]);
  32. listitem.add(map_list);
  33. }
  34. SimpleAdapter simpleAdapter=new SimpleAdapter(this,listitem,R.layout.listitem,new String[]{"header","Name","Star","pl","author","cbs","price"},new int[]{R.id.header,R.id.name,R.id.star,R.id.pl,R.id.author,R.id.cb,R.id.price});
  35. ListView listView=findViewById(R.id.listView);
  36. listView.setAdapter((simpleAdapter));
  37. }
  38. }

【Java代码详解】

1.定义资源数组

  1. private String[] names = new String[]{"Python编程从入门到实践第2版","深入理解计算机系统","机器学习","Redis设计与实现","深入理解Java虚拟机:JVM高级特性与实践"};
  2.     private int[] stars = new int[]{R.drawable.index_star5,R.drawable.index_star3,R.drawable.index_star4,R.drawable.index_star3,R.drawable.index_star5};
  3.     private String[] pl = new String[]{"201759条评论","30097条评论","3347条评论","13161条评论","18990条评论"};
  4.     private String[] author = new String[]{"作者:[美]埃里克·马瑟斯(Eric Matthes)","作者:(美)兰德尔 E.布莱恩特(Randal E.Bryant)等","作者:周志华","作者:黄健宏","作者:周志明"};
  5.     private String[] cbs = new String[]{"出版社:人民邮电出版社","出版社:机械工业出版社","出版社:清华大学出版社","出版社:机械工业出版社","出版社:机械工业出版社"};
  6.     private double[] price = new double[]{54.90,65.50,54.00,39.5,64.50};
  7.     private int[] imageIds = new int[]{R.drawable.book_1,R.drawable.book_2,R.drawable.book_3,R.drawable.book_4,R.drawable.book_5};

 2.新建list数组

List<Map<String,Object>> listitem=new ArrayList<>();

 3.赋值键值对,自定义名称为键,资源数组为值

  1. for(int i=0;i<5;i++){
  2. Map<String,Object>map_list=new HashMap<>();
  3. map_list.put("header",imageIds[i]);
  4. map_list.put("Name",names[i]);
  5. map_list.put("Star",stars[i]);
  6. map_list.put("pl",pl[i]);
  7. map_list.put("author",author[i]);
  8. map_list.put("cbs",cbs[i]);
  9. map_list.put("price",price[i]);
  10. listitem.add(map_list);
  11. }

4. 使用SimpleAdapter创建ListView

 SimpleAdapter simpleAdapter=new SimpleAdapter(this,listitem,R.layout.listitem,new String[]{"header","Name","Star","pl","author","cbs","price"},new int[]{R.id.header,R.id.name,R.id.star,R.id.pl,R.id.author,R.id.cb,R.id.price});

SimpleAdapter的用法

SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

SimpleAdapter对象,需要5个参数,后面4个是关键

  • 第2个参数:是一个List<Map<? extends Map<string,?>>的集合对象,集合中的每个 Map<string,?>对象是一个列表项
  • 第3个参数:该参数指定一个列表项布局界面的ID。
  • 第4个参数:一个String[]类型的参数,决定提取Map对象中的那些key值对应的value类生成类表项 就是:需要显示value的key值
  • 第5个参数:int[]类型的参数,决定填充哪些 组件,就是使用显示值得组件Id

 6.为ListView设置Adapter

  1. ListView listView=findViewById(R.id.listView);
  2. listView.setAdapter((simpleAdapter));

为wListView设置Adaweipter为ListView

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/613672
推荐阅读
相关标签
  

闽ICP备14008679号