Ver mensagens sem resposta | Ver tópicos ativos Hoje é 21 Nov 2017, 09:05



Responder Tópico  [ 4 Mensagens ] 
 [MINI API] AlertsDialogs Dinâmicos 
Autor Mensagem
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 782
Localização: Blumenau - SC
Mensagem [MINI API] AlertsDialogs Dinâmicos
A classe Alert é uma mini API feita para facilitar na hora de mostrar um AlertDialog sem precisar escrever muitas linhas de código e com organização.

Neste tópico, além da explicação completa das funcionalidades com exemplos, contém em anexo um projeto com o código fonte dos exemplos da utilização dos diversos dialogs que podem ser mostrados com a API.

Classe Alert

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface.OnClickListener;

public class Alert {
    /**
     * Enum criado para formalizar os diversos tipos de alertas que podem ser
     * mostrados.
     *
     * @see INFO
     * @see WARN
     * @see SUCESS
     * @see ERROR
     */

    public enum AlertType {
        INFO(android.R.drawable.ic_dialog_info, "Informação"), WARN(
                android.R.drawable.ic_dialog_alert, "Alerta"), SUCESS(
                android.R.drawable.checkbox_on_background, "Sucesso"), ERROR(
                android.R.drawable.ic_delete, "Erro");

        // número inteiro que guarda o valor do ícone que será mostrado no
        // dialog
        private int drawable;

        // Título do dialog
        private String title;

        AlertType(int drawable, String title) {
            this.drawable = drawable;
            this.title = title;
        }

        public int getDrawable() {
            return this.drawable;
        }

        public String getTitle() {
            return this.title;
        }
    }

    /**
     * Mostra um dialog simples com um botão OK
     *
     * @param message
     *            mensagem/conteúdo que aparecerá no dialog
     * @param context
     *            contexto da aplicação
     * @param alertType
     *            tipo de alerta(INFO, WARN, SUCESS, ERROR)
     */

    public static void showSimpleDialog(String message, Context context,
            AlertType alertType) {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
        alertDialog.setMessage(message);
        alertDialog.setNeutralButton("OK", null);
        if (alertType == null) {
            alertDialog.setIcon(AlertType.INFO.getDrawable());
            alertDialog.setTitle(AlertType.INFO.getTitle());
        } else {
            alertDialog.setIcon(alertType.getDrawable());
            alertDialog.setTitle(alertType.getTitle());
        }
        alertDialog.show();
    }

    /**
     * Mostra um dialog simples com um botão OK, com ação ao clicar no OK
     *
     * @param message
     *            mensagem/conteúdo que aparecerá no dialog
     * @param context
     *            contexto da aplicação
     * @param alertType
     *            tipo de alerta(INFO, WARN, SUCESS, ERROR)
     * @param okButton
     *            ação do botão ok
     */

    public static void showSimpleDialog(String message, Context context,
            AlertType alertType, OnClickListener okButton) {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
        alertDialog.setMessage(message);
        alertDialog.setNeutralButton("OK", okButton);
        if (alertType == null) {
            alertDialog.setIcon(AlertType.INFO.getDrawable());
            alertDialog.setTitle(AlertType.INFO.getTitle());
        } else {
            alertDialog.setIcon(alertType.getDrawable());
            alertDialog.setTitle(alertType.getTitle());
        }
        alertDialog.show();
    }

    /**
     * Mostra um dialog com um botão Sim e um botão Não, com ação no botão Sim e
     * outra ação no botão Não
     *
     * @param message
     *            mensagem/conteúdo que aparecerá no dialog
     * @param context
     *            contexto da aplicação
     * @param yesButton
     *            ação do botão Sim
     * @param noButton
     *            ação do botão Não
     * @param alertType
     *            tipo de alerta(INFO, WARN, SUCESS, ERROR)
     */

    public static void showYesNoDialog(String message, Context context,
            OnClickListener yesButton, OnClickListener noButton,
            AlertType alertType) {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
        alertDialog.setMessage(message);
        alertDialog.setPositiveButton("Sim", yesButton);
        alertDialog.setNegativeButton("Não", noButton);
        if (alertType == null) {
            alertDialog.setIcon(AlertType.INFO.getDrawable());
            alertDialog.setTitle(AlertType.INFO.getTitle());
        } else {
            alertDialog.setIcon(alertType.getDrawable());
            alertDialog.setTitle(alertType.getTitle());
        }
        alertDialog.show();
    }

    /**
     * Mostra um dialog com um botão Sim e um botão Não, com ação somente no
     * botão Sim
     *
     * @param message
     *            mensagem/conteúdo que aparecerá no dialog
     * @param context
     *            contexto da aplicação
     * @param yesButton
     *            ação do botão Sim
     * @param alertType
     *            tipo de alerta(INFO, WARN, SUCESS, ERROR)
     */

    public static void showYesNoDialog(String message, Context context,
            OnClickListener yesButton, AlertType alertType) {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
        alertDialog.setMessage(message);
        alertDialog.setPositiveButton("Sim", yesButton);
        alertDialog.setNegativeButton("Não", null);
        if (alertType == null) {
            alertDialog.setIcon(AlertType.INFO.getDrawable());
            alertDialog.setTitle(AlertType.INFO.getTitle());
        } else {
            alertDialog.setIcon(alertType.getDrawable());
            alertDialog.setTitle(alertType.getTitle());
        }
        alertDialog.show();
    }

    /**
     * Mostra um dialog com um botão Ok e um botão Cancelar, com ação ao clicar
     * no botão Ok e outra ação ao clicar em Cancelar
     *
     * @param message
     *            mensagem/conteúdo que aparecerá no dialog
     * @param context
     *            contexto da aplicação
     * @param okButton
     *            ação do botão Ok
     * @param cancelButton
     *            ação do botão Cancelar
     * @param alertType
     *            tipo de alerta(INFO, WARN, SUCESS, ERROR)
     */

    public static void showConfirmDialog(String message, Context context,
            OnClickListener okButton, OnClickListener cancelButton,
            AlertType alertType) {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
        alertDialog.setMessage(message);
        alertDialog.setPositiveButton("Ok", okButton);
        alertDialog.setNegativeButton("Cancelar", cancelButton);
        if (alertType == null) {
            alertDialog.setIcon(AlertType.INFO.getDrawable());
            alertDialog.setTitle(AlertType.INFO.getTitle());
        } else {
            alertDialog.setIcon(alertType.getDrawable());
            alertDialog.setTitle(alertType.getTitle());
        }
        alertDialog.show();
    }

    /**
     * Mostra um dialog com um botão Ok e um botão Cancelar, com ação somente no
     * botão Ok
     *
     * @param message
     *            mensagem/conteúdo que aparecerá no dialog
     * @param context
     *            contexto da aplicação
     * @param okButton
     *            ação do botão Ok
     * @param alertType
     *            tipo de alerta(INFO, WARN, SUCESS, ERROR)
     */

    public static void showConfirmDialog(String message, Context context,
            OnClickListener okButton, AlertType alertType) {
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
        alertDialog.setMessage(message);
        alertDialog.setPositiveButton("Ok", okButton);
        alertDialog.setNegativeButton("Cancelar", null);
        if (alertType == null) {
            alertDialog.setIcon(AlertType.INFO.getDrawable());
            alertDialog.setTitle(AlertType.INFO.getTitle());
        } else {
            alertDialog.setIcon(alertType.getDrawable());
            alertDialog.setTitle(alertType.getTitle());
        }
        alertDialog.show();
    }

}
 


AlertType:
Serve para montar os títulos e as imagens dos alerts.
Imagem

---------------------
Métodos:
---------------------
- public static void showSimpleDialog(String message, Context context, AlertType alertType)
- public static void showSimpleDialog(String message, Context context, AlertType alertType, OnClickListener okButton)
Alerta simples com um botão OK e uma mensagem, pode ser implementado tanto com a ação do botão ok, quanto sem ação nenhuma.
parâmetros:
String message = mensagem que o dialog irá mostrar.
Context context = contexto da app.
AlertType alertType = tipo do alerta.
parâmetro opcional:
OnClickListener okButton = a ação do botão OK quando clicado.

Exemplo:
Imagem

Alert.showSimpleDialog("Bem vindo ao sistema.", this, null);
 


- public static void showYesNoDialog(String message, Context context,
OnClickListener yesButton, OnClickListener noButton,
AlertType alertType)
- public static void showYesNoDialog(String message, Context context,
OnClickListener yesButton, AlertType alertType)

Alerta com botão de Sim e Não, podendo ser implementados com a ação do botão Sim e Não, ou somente o botão Sim.
parâmetros:
String message = mensagem que o dialog irá mostrar.
Context context = contexto da app.
OnClickListener yesButton = ação/listener do botão Sim.
AlertType alertType = tipo do alerta.
parâmetro opcional:
OnClickListener noButton = ação/listener do botão Não.

Exemplo:
Imagem

DialogInterface.OnClickListener yesButton = new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(AlertActivity.this, "Aceito!",
                Toast.LENGTH_SHORT).show();

    }
};

DialogInterface.OnClickListener noButton = new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(AlertActivity.this, "Não Aceito!",
                Toast.LENGTH_SHORT).show();

    }
};
Alert.showYesNoDialog("Deseja aceitar os termos do contrato?",
        this, yesButton, noButton, AlertType.INFO);
 


- public static void showConfirmDialog(String message, Context context,
OnClickListener okButton, OnClickListener cancelButton,
AlertType alertType)
- public static void showConfirmDialog(String message, Context context,
OnClickListener okButton, AlertType alertType)

Dialog para confirmação, semelhante ao Sim/Não, porém com os botões Ok e Cancelar.
parâmetros:
String message = mensagem que o dialog irá mostrar.
Context context = contexto da app.
OnClickListener okButton = ação/listener do botão Ok.
AlertType alertType = tipo do alerta.
parâmetro opcional:
OnClickListener cancelButton= ação/listener do botão Cancelar.

Exemplo:
Imagem

Alert.showConfirmDialog(
        "Deseja realmente excluir este registro?", this,
        new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(AlertActivity.this,
                        "Registro excluído.", Toast.LENGTH_SHORT)
                        .show();
            }
        }, AlertType.WARN);
 


Você não tem permissões suficientes para ver os arquivos anexados nesta mensagem.

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


22 Jan 2013, 14:13
Perfil WWW
Google employee
Google employee

Data de registro: 28 Jun 2012, 19:13
Mensagens: 1308
Localização: Itaperuna-RJ
Mensagem Re: [MINI API] AlertsDialogs Dinâmicos
Boa Maiconn! Estava a procura de como tratar o retorno dos botões fora da activity há um bom tempo! Vlw!
Veja se você consegue me ajudar... Eu implementei uma classe parecida para minhas exceções, porém não queria implementar o método para finalizar a activity em todas as minhas activitys, você sabe uma forma de eu finalizar a activity fora dela, dentro dessa classe Alert por exemplo? Vlw!

_________________
Powell


23 Jan 2013, 17:29
Perfil
Android Guru
Android Guru
Avatar de usuário

Data de registro: 29 Ago 2011, 16:18
Mensagens: 782
Localização: Blumenau - SC
Mensagem Re: [MINI API] AlertsDialogs Dinâmicos
você pode duplicar um desses dialogs passando a activity por parâmetro,
neste tópico:
viewtopic.php?f=2&t=23321

_________________
Sanou a sua dúvida ou resolveu o seu problema?
1º -> Compartilhe a solução postando-a, as pessoas com a mesma dúvida ou problema agradecem.
2º -> Adicione ao título do tópico "[RESOLVIDO]" para que os moderadores identifiquem que o seu tópico foi realmente resolvido.


_____
WordPress: http://tecmaicon.wordpress.com/
github: https://github.com/maiconn
LinkedIn: http://www.linkedin.com/pub/maicon-mach ... /64/a07/20


25 Jan 2013, 09:09
Perfil WWW
What is Android?
What is Android?

Data de registro: 03 Set 2011, 18:39
Mensagens: 6
Mensagem Re: [MINI API] AlertsDialogs Dinâmicos
Parabéns, resolveu o meu problema!!!! Ótima iniciativa.


06 Mar 2013, 16:17
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 4 Mensagens ] 

Quem está online

Usuários vendo este fórum: adelar, AdrianoMM, albinoneto, alexandrefett, am2net, andi, ANDRE FELIX DE ASSIS, apoena, arkanjo, Arthas, Ask Jeeves, berchielli, bigr ecreio, billsombrio, BornSlip, Bruno, bruno.abd, capo, carlos rodrigues, Cassius, celiapinheiro, cesao, cezaraf, charly, Chaves, chunga, CKorneLL, Clauber, claudioalfonso, cleiton_maciel, Cr-Informática, Crazy_Droid, Danilo Dias, dchechetto, deborazb, Demerval, diegorrborges, difrene, Dookan, DroidBot, elisa, erosvaldo, ferrodecaju, ffardo, Flavio, flaviohssantos, frances135, frederico.affini, free_w3000, Gabriel Laet, gabrielatme, Governador Wilhuff Tarkin, guilhermepilotti, guitarro17, HanNiBaLSeTDf, Ielo8, ismaelbpaiva, ismaels, ixian, jairo, jairom, jandersonjc, JAndroid, joaquimfoto, jonasminas, José Guilherme, jpespindola, JRSIQUEIRA, jwv, Katia, kecyobarros, lafamac, leeeeooooooo, Legiao, leofernandesmo, lucastgomes, lufreitas, luiz.lago, Lúcio Zanette, malucouto, Marcelo Lima, marcelocastellani, marcelorferrari, marianatallas, MauNunes, mauriciobreide, maximilianjx, Maxtremus, mayahaslinger, MBetioli, mcroft, MpassosT, nglaubervasc, Nice, nilsgome, nina.rm, nsansilva, Obi-Wan Kenobi, Odigooogle™, oliveiramc, On_7, otium, paint-horse, Paulo, paulo.weber, persiomotta, pfsmorigo, PicsearchDroid, Portal Android, pxcx, raulcca, reginaldo, renanpl, renatodondoni, Rickxdx, roberto caceres, Robson Florentino, rodrigoinnova, Rogério, ronamore, rotmeil, schiroky, sidnei.gs, SirBagda, srmoreira, talves, Tangerina, tiagofalcao, tiagoxv, tnarnold, vandob, vicfalmac, viniciusllima, Wenceslau, XPTO, Zam Wesell e 2 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi