Como exibir caixa de diálogo com lista de opções no Android
As caixas de diálogo com listas de opções são uma ótima maneira de permitir que os usuários escolham entre várias alternativas em seu aplicativo Android. O AlertDialog
é uma ferramenta versátil que pode ser usada para criar esse tipo de interação de forma simples e eficaz. Neste post, vamos aprender como exibir caixa de diálogo com lista de opções no Android usando o AlertDialog.Builder
.
1. Criando a caixa de diálogo
Para exibir uma caixa de diálogo com uma lista de opções, você usará o AlertDialog.Builder
e o método setItems()
, que permite passar uma lista de itens que o usuário pode escolher.
Exemplo de Código:
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Chama o método para exibir a caixa de diálogo
mostrarDialogoComLista();
}
private void mostrarDialogoComLista() {
// Define os itens da lista
final String[] opcoes = {"Opção 1", "Opção 2", "Opção 3", "Opção 4"};
// Cria a caixa de diálogo
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Escolha uma opção")
.setItems(opcoes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// O que fazer quando o usuário clicar em uma opção
String opcaoSelecionada = opcoes[which];
// Aqui você pode tratar a opção selecionada
mostrarMensagem(opcaoSelecionada);
}
});
// Exibe a caixa de diálogo
builder.create().show();
}
private void mostrarMensagem(String mensagem) {
// Método para mostrar a opção selecionada
Toast.makeText(this, "Você selecionou: " + mensagem, Toast.LENGTH_SHORT).show();
}
}
2. Explicação do código
- Lista de opções: Definimos um array
opcoes
que contém as opções que queremos que o usuário selecione. - AlertDialog.Builder: Criamos uma instância do
AlertDialog.Builder
, definindo o título e as opções da lista usandosetItems()
. - Listener de clique: Implementamos um
OnClickListener
para capturar qual opção foi selecionada. O índicewhich
representa a posição da opção escolhida na lista. - Mostrar mensagem: Após a seleção, chamamos o método
mostrarMensagem()
para exibir umToast
com a opção escolhida.
3. Personalizando a caixa de diálogo
Você pode personalizar ainda mais a caixa de diálogo com o método setNegativeButton()
para adicionar um botão de cancelamento e o método setPositiveButton()
se quiser um botão de confirmação.
Exemplo:
builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss(); // Fecha a caixa de diálogo
}
});
4. Usando setMultiChoiceItems para Seleção Múltipla
Se você deseja permitir que os usuários selecionem várias opções, pode usar setMultiChoiceItems()
.
Exemplo:
boolean[] selecoes = {false, false, false, false}; // Inicialmente, nenhuma opção selecionada
builder.setMultiChoiceItems(opcoes, selecoes, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
// Lógica para lidar com a seleção/desmarcação
}
});
Outro exemplo prático
1. Crie um arquivo de layout (layout resource file) para exibir a caixa de diálogo com as opções.
Aqui o arquivo será nomeado para opcoes_lista.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#FFFF0000"
android:padding="12sp"
/>
2. Em MainActivity crie um método para gerar a caixa de diálogo:
private void lista_opcoes() {
//Lista de itens
ArrayList itens = new ArrayList();
itens.add("Opção A");
itens.add("Opção B");
itens.add("Opção C");
itens.add("Opção D");
//adapter utilizando um layout customizado (opcoes_lista.xml>
ArrayAdapter adapter = new ArrayAdapter(this, R.layout.opcoes_lista, itens);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Lembrete:");
//define o diálogo como uma lista, passa o adapter
builder.setSingleChoiceItems(adapter, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "opção escolhida: " + arg1, Toast.LENGTH_SHORT).show();
alerta.dismiss();
}
});
alerta = builder.create(); //cria o AlertDialog
alerta.show(); //Exibe
}
3. Crie um botão. Dentro do método onCreate, crie um evento onClick para o botão criado e chame o método lista_opcoes():
private Button meuBotao;
...
meuBotao = findViewById(R.id.btnBotao);
...
meuBotao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lista_opcoes(); //chama método
}
});
Exibir uma caixa de diálogo com uma lista de opções é uma maneira eficaz de coletar a entrada do usuário em seu aplicativo Android.
Usando AlertDialog
, você pode facilmente criar interfaces interativas e dinâmicas, permitindo que os usuários façam escolhas de maneira intuitiva. Experimente implementar essa funcionalidade em seu próprio aplicativo e personalize-a conforme suas necessidades!
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:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Sobre o Autor
0 Comentários