Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/08/2011, 12:59
tazmaniator
 
Fecha de Ingreso: noviembre-2008
Mensajes: 49
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: como mostrar un toast y un alert despues de haber ejecutado un progressbar

Bueno aqui dejo el codigo que estoy programando:

Código JAVA:
Ver original
  1. package Password.Principal;
  2.  
  3. import usuario.Alerts;
  4. import usuario.ManejadorBD;
  5. import usuario.Usuario;
  6. import usuario.Validacion;
  7. import android.app.Activity;
  8. import android.app.ProgressDialog;
  9. import android.content.Intent;
  10. import android.database.Cursor;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.view.View.OnClickListener;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.Toast;
  17.  
  18. public class Sesion extends Activity {
  19.  
  20.     public ManejadorBD cnx = null;
  21.     private Alerts alerta = new Alerts();
  22.     private int id=0;
  23.     public Toast msj;
  24.     public ProgressDialog inSesion;
  25.     private int numIntento=0;
  26.     private String msjErrror="";
  27.     private boolean entrada;
  28.     private Thread is;
  29.  
  30.     /** Called when the activity is first created. */
  31.     @Override
  32.     public void onCreate(Bundle savedInstanceState) {
  33.         super.onCreate(savedInstanceState);
  34.         setContentView(R.layout.sesion);
  35.  
  36.         try {
  37.             final EditText usr = (EditText) findViewById(R.id.user);
  38.             final EditText psw = (EditText) findViewById(R.id.psw);
  39.             Button iniciar = (Button) findViewById(R.id.iniciar);
  40.  
  41.             usr.setOnClickListener(new OnClickListener() {
  42.  
  43.                 @Override
  44.                 public void onClick(View v) {
  45.                     // TODO Auto-generated method stub
  46.                     usr.setText("");
  47.                 }
  48.             });
  49.  
  50.             psw.setOnClickListener(new OnClickListener() {
  51.  
  52.                 @Override
  53.                 public void onClick(View v) {
  54.                     // TODO Auto-generated method stub
  55.                     psw.setText("");
  56.                 }
  57.             });
  58.  
  59.             iniciar.setOnClickListener(new OnClickListener() {
  60.  
  61.                 @Override
  62.                 public void onClick(View v) {
  63.                     // TODO Auto-generated method stub
  64.                      inSesion=ProgressDialog.show(Sesion.this, "","Iniciando Sesion...", true);
  65.                    
  66.                     is=new Thread(new Runnable() {
  67.                        
  68.                         @Override
  69.                         public void run() {
  70.                             // TODO Auto-generated method stub
  71.                             if(this.verificarUsuarioSistema(usr.getText().toString(), psw.getText().toString())){
  72.                                 entrada=true;
  73.                             }else{
  74.                                 entrada=false;                     
  75.                             }
  76.                             inSesion.dismiss();
  77.                         }                                      
  78.                        
  79.                         private boolean verificarUsuarioSistema(String nomusr, String usrpsw){
  80.                             cnx = new ManejadorBD(Sesion.this, "passwordsBD", 1, 'r');
  81.                             Usuario user = new Usuario();
  82.                             user.setUsuario(nomusr);
  83.                             user.setPassword(usrpsw);
  84.                             Validacion validar = new Validacion(); 
  85.                             if (validar.validarUsuario(nomusr)&& validar.validarPassword(usrpsw)) {
  86.                                 if (cnx.verificarUsuario()) {
  87.                                     msjErrror=this.getMsjErrorSesion(1);                                   
  88.                                     cnx.CerrarBD();
  89.                                     numIntento++;
  90.                                     return (false);
  91.                                 } else {
  92.                                     String[] args = { nomusr,usrpsw };
  93.                                     Cursor c = cnx.consultar("SELECT * FROM usuarios WHERE nombreUsuario=? and contrasenia=?",args);
  94.                                     if (c.getCount() == 0) {
  95.                                         msjErrror=this.getMsjErrorSesion(2);
  96.                                         cnx.CerrarBD();
  97.                                         numIntento++;
  98.                                         return (false);
  99.                                     } else {
  100.                                         if (c.moveToFirst()) {
  101.                                             String usuarioBD = null;
  102.                                             String passwordBD = null;
  103.                                             do {
  104.                                                 id = c.getInt(0);
  105.                                                 usuarioBD = c.getString(4);
  106.                                                 passwordBD = c.getString(5);
  107.                                             } while (c.moveToNext());
  108.                                             if (validar.validarUsuarioBD(usuarioBD,nomusr) && validar.validarPasswordBD(passwordBD,usrpsw)) {
  109.                                                 msjErrror=this.getMsjErrorSesion(3);                                               
  110.                                                 cnx.CerrarBD();
  111.                                                 return (true);
  112.                                             } else {
  113.                                                 msjErrror=this.getMsjErrorSesion(4);
  114.                                                 cnx.CerrarBD();
  115.                                                 numIntento++;
  116.                                                 return (false);
  117.                                             }
  118.                                         } else {
  119.                                             msjErrror=this.getMsjErrorSesion(5);
  120.                                             cnx.CerrarBD();
  121.                                             return (false);
  122.                                         }
  123.                                     }
  124.                                 }
  125.                             } else {
  126.                                 msjErrror=this.getMsjErrorSesion(6);
  127.                                 cnx.CerrarBD();
  128.                                 numIntento++;
  129.                                 return (false);
  130.                             }
  131.                          
  132.                         }
  133.                        
  134.                         private String getMsjErrorSesion(int idError){
  135.                             String msj="";
  136.                             switch(idError){
  137.                               case 1:
  138.                                   msj="El usuario es inválido o incorrecto";
  139.                               break;
  140.                               case 2:
  141.                                   msj="El usuario no existe en el sistema, verifique la información";
  142.                               break;
  143.                               case 3:
  144.                                   msj="Accediendo a la aplicación";
  145.                               break;
  146.                               case 4:
  147.                                   msj="El usuario o contraseña son inválidos, verifique la información";
  148.                               break;
  149.                               case 5:
  150.                                   msj="El usuario no existe en el sistema, verifique la información";
  151.                               break;
  152.                               case 6:
  153.                                   msj="El usuario o contraseña son inválidos, verifique la información";
  154.                               break;
  155.                               default:
  156.                                   msj="Ha ocurrido un problema al iniciar la sesion";
  157.                               break;
  158.                             }
  159.                            
  160.                             return(msj);
  161.                         }
  162.                     });
  163.                     is.start();
  164.                    
  165.                     if(is.isAlive()){
  166.                        
  167.                     if(entrada==true){
  168.                        
  169.                         Intent envio = new Intent(Sesion.this,
  170.                                     Principal.class);
  171.                             Bundle idUser = new Bundle();
  172.                             idUser.putInt("idUsuario", id);
  173.                             envio.putExtras(idUser);
  174.                             setResult(RESULT_OK, envio);
  175.                             startActivity(envio);
  176.                             finish();
  177.                     }else{
  178.                         if(entrada==false){
  179.                         alerta.showWarning("Acceso Denegado",
  180.                                 msjErrror, Sesion.this);
  181.                         this.verificarIntentos();  
  182.                         }
  183.                     }
  184.                     }else{
  185.                         is.start();
  186.                     }
  187.                 }
  188.                
  189.                 private void verificarIntentos(){                          
  190.                     if(numIntento==3){
  191.                         msj=Toast.makeText(Sesion.this,
  192.                                 "Intenta mas tarde",
  193.                                 Toast.LENGTH_SHORT);
  194.                         msj.show();
  195.                     }else{
  196.                         int intentos=3-numIntento;
  197.                         msj=Toast.makeText(Sesion.this,
  198.                                 "Intentos restantes:"+intentos,
  199.                                 Toast.LENGTH_SHORT);
  200.                         msj.show();
  201.                     }
  202.                 }
  203.             });
  204.            
  205.         } catch (Exception e) {
  206.             alerta.showWarning("Error en la Aplicación",
  207.                     "Se ha producido un error", this);
  208.             finish();
  209.         }
  210.     }
  211.    
  212.    
  213. }

Mi problema es que en mi codigo, la primera vez que entra no me ejecuta el hilo, sino hasta la segunda vez que doy click en el boton, pero el detalle es q si esta mal me manda directo el alert y el toast, y no me muestra la barra de progreso, y si pongo bien los datos, la primera vez q le doy me marca q esta mal y la segunda vez me ya me lanza la barra de progreso y ejecuta la siguiente actividad