O Spinner, ou lista suspensa, é um componente visual no Android que permite ao usuário selecionar uma opção de uma lista. Ele é especialmente útil quando você quer economizar espaço na interface e oferecer ao usuário uma seleção limitada de valores, como uma lista de países, opções de categorias ou níveis de dificuldade. Neste post, aprenda como criar uma lista suspensa de valores (Spinner) em Android.

1. Adicionando um Spinner ao layout

Para começar, você precisa adicionar um Spinner ao layout XML do seu aplicativo. No arquivo XML do layout, adicione o seguinte código:

<Spinner
    android:id="@+id/spinner_exemplo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

2. Criando o array de valores

Para preencher o Spinner, você precisa definir os valores que serão exibidos. A melhor maneira de fazer isso é criando um arquivo strings.xml com uma lista de valores, chamada string-array.

No arquivo res/values/strings.xml, adicione:

<resources>
    <string-array name="opcoes_spinner">
        <item>Opção 1</item>
        <item>Opção 2</item>
        <item>Opção 3</item>
    </string-array>
</resources>

3. Configurando o Spinner no código

No arquivo da atividade (Activity), configure o Spinner para exibir as opções da lista criada no strings.xml.

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

        // Obtenha o Spinner
        Spinner spinner = findViewById(R.id.spinner_exemplo);

        // Crie um ArrayAdapter usando a lista de strings e o layout padrão do Spinner
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.opcoes_spinner, android.R.layout.simple_spinner_item);

        // Especifica o layout a ser usado quando a lista de opções aparecer
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // Aplica o adaptador ao Spinner
        spinner.setAdapter(adapter);

        // Configura um Listener para capturar a opção selecionada
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                // Obtém o item selecionado
                String opcaoSelecionada = parent.getItemAtPosition(position).toString();
                Toast.makeText(parent.getContext(), "Selecionado: " + opcaoSelecionada, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // Caso nenhum item seja selecionado
            }
        });
    }
}

4. Explicação do Código

  • ArrayAdapter: O ArrayAdapter é usado para vincular o array de strings ao Spinner, configurando os itens que ele deve exibir.

  • setOnItemSelectedListener: Esse método adiciona um ouvinte que será acionado sempre que uma opção for selecionada. No exemplo, ele exibe a opção selecionada em um Toast.

5. Personalizando o Spinner

Você pode personalizar o Spinner com diferentes layouts, cores e estilos. Experimente alterar o layout padrão para customizar a aparência:

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

6. Utilizando dados dinâmicos

Se precisar de dados dinâmicos (ex.: de uma API ou banco de dados), é possível popular o Spinner programaticamente com um ArrayList<String> e passar para o ArrayAdapter.

ArrayList<String> dadosDinamicos = new ArrayList<>();
dadosDinamicos.add("Dinâmico 1");
dadosDinamicos.add("Dinâmico 2");

ArrayAdapter<String> adapterDinamico = new ArrayAdapter<>(this,
        android.R.layout.simple_spinner_item, dadosDinamicos);
spinner.setAdapter(adapterDinamico);

Outro exemplo prático

Para incluir um spinner em seu aplicativo, insira as seguintes linhas no arquivo xml de layout:

<Spinner
    android:id="@+id/color" //nome de itentificação do componente
    //posicionamento do componente na tela
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="30dp" 
    //
    android:entries="@array/itens" /> //chama o array de strings

A linha android:entries=”@array/itens” significa que as entradas do spinner vêm do array “itens”.

Para popular esse array, edite o arquivo strings.xml inserindo as seguintes linhas

 <string-array name="itens">
    <item>pendrive</item>
    <item>HD</item>
    <item>Mouse</item>
    <item>Teclado</item>
    <item>Cabo de rede</item>
 </string-array>

Dessa forma, quando o spinner for tocado na tela, será mostrada a lista de itens elencada no código acima.

O Spinner é um componente versátil e fácil de configurar, perfeito para exibir listas de opções em uma interface limpa e intuitiva. Com ele, você melhora a experiência do usuário e mantém a interface organizada.

Quer aprender de forma prática como desenvolver apps nativos para iOS e Android, construindo aplicativos do zero até aplicativos completos com Integrações com API´s, Banco de dados, Autenticação, Mapas, Animações e Design?

Além do curso, você receberá mais 3 BÔNUS, o curso completo de JavaScript e também o Curso de React JS e Node JS onde vamos desenvolver aplicações e sistemas web do zero.

Garanta a sua vaga ainda hoje e aproveite a nossa super promoção!

CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Dúvidas ou sugestões sobre como criar uma lista suspensa de valores (Spinner) em Android.? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags:

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *