Caso AndroidStudio - lista de livros

Índice

Conteúdo e etapas experimentais

etapa:

resultado da operação:

1. Configure o arquivo desenhável

2. Configure o arquivo listiem.xml

 3. Importar para activity_main.xml

4. Configure o código Java

【Detalhes do código Java】

1. Defina a matriz de recursos

 2. Crie uma nova matriz de lista

 3. Atribua pares chave-valor, o nome personalizado é a chave e a matriz de recursos é o valor

4. Crie um ListView usando SimpleAdapter

Uso do SimpleAdapter

SimpleAdapter (contexto de contexto, lista> dados, recurso int, string[] de, int[] para)

 6. Defina o adaptador para ListView

Definir Adaweipter para wListView como ListView


Conteúdo e etapas experimentais

Projete a interface conforme mostrado no arquivo de layout activity_main.xml na pasta de layout e use o componente ListView para imitar a lista de livros em "Dangdang APP" para projetar a interface do APP exibida pela lista de livros

etapa:

  • Configure o componente ListView no arquivo de layout principal .
  • Crie um arquivo de layout de item de lista e projete o layout de item de lista
  • Defina o adaptador de livro ( adaptador ) de acordo com o objeto de recurso relacionado em MainActivity .

resultado da operação:

1. Configure o arquivo desenhável

Copie book_img1~5.jpg: foto da capa do livro, index_star1~5.png: imagem de classificação por estrelas para a pasta desenhável

Link: Link do recurso de imagem
Código de extração: 1234 

2. Configure o arquivo listiem.xml

Crie um novo arquivo listiem.xml na pasta de layout e escreva a IU de cada item na lista

<?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="horizontal"
    android:padding="10dp">
    <ImageView
        android:id="@+id/header"
        android:layout_width="240dp"
        android:layout_height="100dp"
        android:layout_weight="1.5"
        android:scaleType="centerCrop"
        android:background="#FF6200EE"
        android:src="@drawable/book_1"/>
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1">
        <TextView
            android:id="@+id/name"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:textColor="@color/black"
            android:paddingLeft="10dp"
            android:text="Python编程从入到实践第二版"
            android:textSize="18dp" />
        <ImageView
            android:id="@+id/star"
            android:layout_width="65dp"
            android:layout_height="20dp"
            android:paddingLeft="10dp"
            android:src="@drawable/index_star5"
            android:scaleType="centerInside"
            android:layout_below="@+id/name"/>
        <TextView
            android:id="@+id/pl"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:paddingLeft="10dp"
            android:text="201759条评论"
            android:textSize="14dp"
            android:layout_below="@+id/name"
            android:layout_toRightOf="@+id/star"/>

        <TextView
            android:id="@+id/author"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:text="作者:[美]埃里克·马瑟斯(Eric Matthes)"
            android:textSize="14dp"
            android:layout_below="@+id/star"/>
        <TextView
            android:id="@+id/cb"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:paddingLeft="10dp"
            android:text="出版社:人民邮电出版社"
            android:textSize="14dp"
            android:layout_below="@id/author"/>
        <TextView
            android:id="@+id/flag"
            android:layout_width="30dp"
            android:layout_height="20dp"
            android:paddingLeft="10dp"
            android:text="¥"
            android:textSize="18dp"
            android:textColor="@color/black"
            android:layout_below="@+id/cb"/>
        <TextView
            android:id="@+id/price"
            android:layout_width="match_parent"
            android:layout_height="20dp"
            android:paddingLeft="10dp"
            android:text="54.9"
            android:textSize="18dp"
            android:textColor="@color/black"
            android:layout_below="@+id/cb"
            android:layout_toRightOf="@+id/flag"/>
    </RelativeLayout>


</LinearLayout>

Você pode ver o layout como mostrado na figura

 

 3. Importar para activity_main.xml

No arquivo activity_main.xml, defina um ListView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <!-- 定义一个ListView -->
    <ListView
        android:id="@+id/listView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

4. Configure o código Java

Em MainActivity.java escreva

package com.example.a1025;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {


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

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        List<Map<String,Object>> listitem=new ArrayList<>();
        for(int i=0;i<5;i++){
            Map<String,Object>map_list=new HashMap<>();
            map_list.put("header",imageIds[i]);
            map_list.put("Name",names[i]);
            map_list.put("Star",stars[i]);
            map_list.put("pl",pl[i]);
            map_list.put("author",author[i]);
            map_list.put("cbs",cbs[i]);
            map_list.put("price",price[i]);
            listitem.add(map_list);
        }
        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});
        ListView listView=findViewById(R.id.listView);
        listView.setAdapter((simpleAdapter));
    }


}

【Detalhes do código Java】

1. Defina a matriz de recursos

    private String[] names = new String[]{"Python编程从入门到实践第2版","深入理解计算机系统","机器学习","Redis设计与实现","深入理解Java虚拟机:JVM高级特性与实践"};
    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};
    private String[] pl = new String[]{"201759条评论","30097条评论","3347条评论","13161条评论","18990条评论"};
    private String[] author = new String[]{"作者:[美]埃里克·马瑟斯(Eric Matthes)","作者:(美)兰德尔 E.布莱恩特(Randal E.Bryant)等","作者:周志华","作者:黄健宏","作者:周志明"};
    private String[] cbs = new String[]{"出版社:人民邮电出版社","出版社:机械工业出版社","出版社:清华大学出版社","出版社:机械工业出版社","出版社:机械工业出版社"};
    private double[] price = new double[]{54.90,65.50,54.00,39.5,64.50};
    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. Crie uma nova matriz de lista

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

 3. Atribua pares chave-valor, o nome personalizado é a chave e a matriz de recursos é o valor

for(int i=0;i<5;i++){
            Map<String,Object>map_list=new HashMap<>();
            map_list.put("header",imageIds[i]);
            map_list.put("Name",names[i]);
            map_list.put("Star",stars[i]);
            map_list.put("pl",pl[i]);
            map_list.put("author",author[i]);
            map_list.put("cbs",cbs[i]);
            map_list.put("price",price[i]);
            listitem.add(map_list);
        }

4.  Use SimpleAdapter para criar um 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});

Uso do SimpleAdapter

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

O objeto SimpleAdapter requer 5 parâmetros, os últimos 4 são a chave

  • O segundo parâmetro: é um List<Map<?, extends Map<string,? >> objeto de coleção, cada Map<string,? o objeto é um item de lista
  • O terceiro parâmetro: Este parâmetro especifica o ID de uma interface de layout de item de lista.
  • O quarto parâmetro: um parâmetro do tipo String[], que determina a extração da classe de valor correspondente ao valor da chave no objeto Map. O item da tabela de classe gerada é: o valor da chave que precisa exibir o valor
  • O quinto parâmetro: um parâmetro do tipo int[], que determina quais componentes preencher, é usar o valor de exibição Id do componente

 6. Defina o adaptador para ListView

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

Definir Adaweipter para w ListView como ListView

Acho que você gosta

Origin blog.csdn.net/m0_52177571/article/details/127540244
Recomendado
Clasificación