Você está na página 1de 14

ALERT DIALOG COM BOTÕES

Programação para
Dispositivos Móveis I
Professor Diego de Carvalho Neves da Fontoura

ANDRÉ ROSA SILVEIRA


JOSÉ MEINARDO
GIOVANI
ALERTDIALOG

É uma Classe que herda os métodos e atributos da Classe Dialog e que implementa os métodos
da Classe Dialogo Interface.

A classe AlertDialog permite criação da Caixas de Diálogo com mensagens com textos(que usamos até
agora na disciplina) ou com entre 1 e 3 botões.

As caixas de diálogo são pequenas janelas que levam o usuário a tomar uma decisão ou inserir
informações adicionais. Elas não ocupam toda a tela e são normalmente usadas para eventos modais que
exijam que usuários realizem uma ação antes de continuar.

3
A classe AlertDialog permite a criação de diversos projetos de caixa de diálogo e normalmente é a
única classe de caixa de diálogo necessária. Como ilustrado na figura 2, há três regiões de uma
caixa de diálogo de alerta:

1.Título
É opcional e deve ser usado somente quando a área do conteúdo estiver ocupada por uma
mensagem detalhada, uma lista ou layout personalizado. Se for necessário declarar uma mensagem
ou pergunta simples. O título não é necessário.

2.Área do conteúdo
Pode exibir uma mensagem, uma lista ou outro layout personalizado.

14
3.Botões de ação
Não deve haver mais de três botões em uma caixa de diálogo.

Figura 2
EXEMPLOS DE CAIXAS DE DIALOGO
COM ALERTDIALOG

5
/atributo da classe.
private AlertDialog alerta; Figura 1: Exemplo de um diálogo básico
private void exemplo_simples() {
//Cria o gerador do AlertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//define o titulo
builder.setTitle("Titulo");
//define a mensagem
builder.setMessage("Qualifique este software");
//define um botão como positivo
builder.setPositiveButton("Positivo", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "positivo=" + arg1,
Toast.LENGTH_SHORT).show();
}

14
});
//define um botão como negativo.
builder.setNegativeButton("Negativo", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "negativo=" + arg1,
Toast.LENGTH_SHORT).show();
}
});
//cria o AlertDialog
alerta = builder.create();
//Exibe
alerta.show();
}
6
É importante sabermos que ao criarmos o diálogo utilizando os recursos
padrões ele será automaticamente desfeita ao pressionar qualquer dos botões.

A criação é simples e em todos os exemplos vamos utilizar o mesmo recurso


para a criação do objeto AlertDialog. Utilizaremos a classe AlertDialog.Builder,
vamos instanciá-la e configurar o que será exibido (título, mensagem, botões,

14
etc…) após isso vamos pegar o AlertDialog do Builder e mandar exibir o
diálogo.

7
private AlertDialog alerta;//atributo da classe.

private void exemplo_alerta() {


AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Titulo");//define o titulo
builder.setMessage("Digite aqui sua mensagem!");//define a mensagem
//define um botão como positivo
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "Você clicou no botão Ok", Toast.LENGTH_SHORT).show();
}
});
//define um botão como negativo.
builder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "Você clicou no botão Cancelar", Toast.LENGTH_SHORT).show();
}
});
alerta = builder.create();//cria o AlertDialog
alerta.show();//Exibe
8
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Add the buttons
builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User clicked OK button
}
});
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// User cancelled the dialog
}
});
// Set other dialog properties
...

// Create the AlertDialog


AlertDialog dialog = builder.create();

Figura 2. Layout de uma caixa de diálogo.


Adição de listas
Há três tipos de listas disponíveis nas APIs AlertDialog:

Lista de escolha única tradicional


Lista de escolha única persistente (botões de opção)
Figura 3. Caixa de diálogo com
Lista de escolhas múltiplas persistentes (caixas de um título e uma lista.
seleção)
Para criar uma lista de escolha única como a da figura 3,
use o método setItems():
Como a lista aparece na área de conteúdo da caixa de diálogo, ela não pode exibir ao mesmo tempo uma
mensagem e uma lista. Será necessário definir um título para a caixa de diálogo com setTitle(). Para
especificar os itens da lista, chame setItems(), passando uma matriz. Como alternativa, é possível especificar
uma lista usando setAdapter(). Isso permite retroceder a lista com dados dinâmicos (como os de um banco de
dados) com um ListAdapter.

Se você optar por retroceder a lista com um ListAdapter, sempre use um Loader para que o conteúdo
carregue assincronamente. Veja mais detalhes sobre isso nos guias Criação de layouts com um
adaptador e Carregadores.

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.pick_color)
.setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
}
});
return builder.create();
}
Esse exemplo é para deixá-los querendo mais

Criação de layout personalizado


Se você deseja um layout personalizado em uma caixa de diálogo, crie um layout e adicione-o a
uma AlertDialog chamando setView() no objeto AlertDialog.Builder.

Por padrão, o layout personalizado preenche a janela da caixa de diálogo, mas ainda é possível usar
métodos AlertDialog.Builder para adicionar botões e um título.

Figura 5. Layout personalizado da caixa de diálogo.


BIBLIOGRAFIAS
Lecheta, Ricardo. 4ed. Google Android.Novatec.2015.

Site: http://matheuspiscioneri.com.br/blog/alertdialog-android-
caixa-dialogo/

Site: https://www.devmedia.com.br/android-dialog/26749
Site: https://developer.android.com/guide/topics/ui/dialogs.html
MUITO

OBRIGADO