Você está na página 1de 15

MÁRIO DA SILVA DE JESUS

Aplicativo – ListView e RecyclerView

SÃO PAULO – SP
2023
2

1. O QUE É UMA LISTVIEW


O ListView é um componente visual no Android Studio que é utilizado para
armazenar uma grande quantidade de informações. Sua estrutura é dividida em
layouts de tela e de códigos, o que facilita a manipulação pelo usuário. O layout da
tela é um conjunto de TextViews organizado em formato de listas, onde todos os itens
são armazenados na memória.

O componente tem a capacidade de atualizar, receber e enviar eventos


dinamicamente. Utilizado para criar uma lista de itens roláveis e é muito flexível na
apresentação de dados, seja um menu curto ou uma lista de rolagem longa.

Para utilizá-lo no Android, basta ir à página de layout. Após todas as explicações,


vamos apresentar como fazer isso de forma prática.

2. O QUE É UM RECYCLERVIEW

O RecyclerView é um componente visual no Android Studio que armazena


informações em formato de listas, as quais são utilizadas para a visualização de
informações dentro do aplicativo criado no Android. Ele faz o mesmo papel da
ListView, tendo um detalhe extra a mais:
– As informações são recicladas sem ocupar um espaço enorme dentro da
memória.

As RecyclerViews são usadas para “reciclar” a memória quando utilizada, tornando


os aplicativos melhores otimizados e dinâmicos, permitindo exibir uma parte de um
grande conjunto de dados. O componente veio para substituir tanto o ListView quanto
o GridView, sendo mais eficiente.

Uma das grandes vantagens do componente é a flexibilidade de mudança do layout


sem ter de implementar diversos código apenas para ter versões de tiles ou cards na
lista.
O RecyclerView é um widget do Android que exibe uma coleção de itens em uma
lista ou em uma grade, permitindo que o usuário role pela coleção sendo utilizado
frequentemente para exibir o conteúdo da caixa de entrada de e-mail em uma lista de
rolagem vertical. Todas essas funcionalidades fez o RecyclerView ser o componente
do Android mais eficiente para listagem hoje em dia no desenvolvimento Android.
3

3. CRIANDO UM APLICATIVO COM O RECYCLERVIEW

Acesse a aplicação do Android Studio e escolha criar um novo projeto.

Após isso, escolha a opção de projeto vazio (Empty Activity), clique em “Next”.
4

Após isso, escolha um nome para seu projeto, siga as ideias básicas de colocar em
caixa alta a primeira letra de cada palavra caso seja para dar o espaço. Clique em
“Finish” e espere o Android finalizar a criação do projeto. Caso demore um pouco,
não se preocupe.
5

Após tudo ser criado, você será direcionado para o design, com a nova geração do
Android Studio, você não precisa importar a biblioteca do RecyclerView pois ele faz
isso instantaneamente. (Aperte ALT + BOTÃO ESQUERDO DO MOUSE) e arraste a
opção de RecyclerView para a tela em branca, modifique o id para “recycler” para
facilitar na hora de localizar o layout no XML.
6

Após isso vamos realizar uma classe Java para programar os itens que estarão dentro
de nosso layout. Clique na pasta “com.example.projetorecyclerview” com o botão
direito do mouse e escolha criar uma nova classe Java. Veja:
7

Agora vamos colocar alguns códigos dentro dessa classe:

Após tudo, ficará assim:


8

Depois iremos novamente no generate e criar a “class getter and seter”:

Ele criará essa estrutura:


9

Depois de termos criado a classe, iremos ao layout criar mais uma página que quando
clicarmos em um dos itens sermos levados a outra tela. Para isso clique com o botão
direito do mouse em layout e escolha a opção “Layout Resource File”. Mude o nome
para “item_view” e escolha a opção de RelativeLayout, veja:
10

Nessa tela iremos adicionar uma imagem e TextViews, nesse documento iremos
adicionar os elementos em código, mas pode sim ser feito no formato de arrastar até
o design se desejado e depois acrescentar as necessidades, mas nesse formato seria
mais complicado.

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
>

<ImageView
android:id="@+id/imageview"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"

/>

<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/imageview"
android:textColor="@color/black"
android:textSize="20dp"
tools:text="Name"
/>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/email"
android:layout_toEndOf="@id/imageview"
android:layout_below="@id/name"
android:textColor="@color/black"
tools:text="exemplo@email.com"
/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@id/imageview"
android:layout_marginTop="10dp"
android:background="#DAD8D8"
/>
</RelativeLayout>
11

Após isso, criaremos uma classe Java chamada “MyViewHolder” aonde teremos que
colocar essa estrutura de código:

package com.example.projetorecyclerview;

import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

public class MyViewHolder extends RecyclerView.ViewHolder {

ImageView imageView;
TextView nameView,emailView;

public MyViewHolder(@NonNull View itemView) {


super(itemView);
imageView = itemView.findViewById(R.id.imageview);
nameView = itemView.findViewById(R.id.name);
emailView = itemView.findViewById(R.id.email);

}
}

Agora criaremos mais uma classe Java, para esse, será interessante prestar atenção
na função implementar métodos, o qual será usado as teclas “CTRL+I”. Observe:
12

O código ficará assim:

Agora vamos continuar com essa mesma estrutura, e adicionar algumas informações.
O código com todas as importações e códigos deve ficar assim:

package com.example.projetorecyclerview;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.List;

public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {

Context context;

public MyAdapter(Context context, List<Item> itens) {


this.context = context;
this.itens = itens;
}

List<Item> itens;

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int
viewType) {
return new
13

MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item_view,parent
,false));
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int
position) {
holder.nameView.setText(itens.get(position).getName());
holder.emailView.setText(itens.get(position).getEmail());
holder.imageView.setImageResource(itens.get(position).getImage());
}

@Override
public int getItemCount() {
return itens.size();
}
}

Vamos colocar agora as informações dentro do nosso MainActivity, o nome, e-mail e


a imagem. Para isso, vamos usar algumas imagens de ícones de pessoas, abaixo terá
3 para você inserir dentro de sua aplicação:
14

Cole as imagens na pasta DRAWABLE

Agora vamos aos códigos:

package com.example.projetorecyclerview;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

RecyclerView recyclerView = findViewById(R.id.recycler);

List<Item> itens= new ArrayList<Item>();


itens.add(new Item("Vitor
Hashimoto","vitorbest@gmail.com",R.drawable.japan));
itens.add(new Item("Leonardo O.
Cordeiro","leozin11@gmail.com",R.drawable.glass));
itens.add(new Item("Bruna
Silva","brnslv@gmail.com",R.drawable.she));
itens.add(new Item("Jonathan Faria
","fariajonathan@etec.sp.gov.br",R.drawable.trabalhador ));
itens.add(new Item("Gabriela
Giordina","gabigio@gmail.com",R.drawable.margaret));
itens.add(new Item("Anderson
Lima","comedorcasada@gmail.com",R.drawable.man));
itens.add(new Item("Sasha
Cabrina","cabrina23@gmail.com",R.drawable.girl));
itens.add(new Item("Patrícia
Calabianco","patypaty47@gmail.com",R.drawable.garota));
itens.add(new Item("Vitor
Hashimoto","vitorbest@gmail.com",R.drawable.japan));
15

itens.add(new Item("Leonardo O.
Cordeiro","leozin11@gmail.com",R.drawable.glass));
itens.add(new Item("Bruna
Silva","brnslv@gmail.com",R.drawable.she));
itens.add(new Item("Jonathan Faria
","fariajonathan@etec.sp.gov.br",R.drawable.trabalhador ));
itens.add(new Item("Gabriela
Giordina","gabigio@gmail.com",R.drawable.margaret));
itens.add(new Item("Anderson
Lima","comedorcasada@gmail.com",R.drawable.man));
itens.add(new Item("Sasha
Cabrina","cabrina23@gmail.com",R.drawable.girl));
itens.add(new Item("Patrícia
Calabianco","patypaty47@gmail.com",R.drawable.garota));
itens.add(new Item("Vitor
Hashimoto","vitorbest@gmail.com",R.drawable.japan));
itens.add(new Item("Leonardo O.
Cordeiro","leozin11@gmail.com",R.drawable.glass));
itens.add(new Item("Bruna
Silva","brnslv@gmail.com",R.drawable.she));
itens.add(new Item("Jonathan Faria
","fariajonathan@etec.sp.gov.br",R.drawable.trabalhador ));
itens.add(new Item("Gabriela
Giordina","gabigio@gmail.com",R.drawable.margaret));
itens.add(new Item("Anderson
Lima","comedorcasada@gmail.com",R.drawable.man));
itens.add(new Item("Sasha
Cabrina","cabrina23@gmail.com",R.drawable.girl));
itens.add(new Item("Patrícia
Calabianco","patypaty47@gmail.com",R.drawable.garota));

recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(new
MyAdapter(getApplicationContext(),itens));
}
}

O resultado final você pode visualizar por aqui (https://youtu.be/RMS65tknriE):

Você também pode gostar