Autor Tema: Curso Android Miriadax  (Leído 38869 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Curso Android Miriadax
« Respuesta #135 en: 09 de Marzo de 2013, 03:05:57 »
Aquí podéis descargar mi proyecto. Actualmente voy por la lección donde se gestione el estado de la actividad.

https://www.dropbox.com/s/f47glv7lsmhofwr/asteroides.zip

Suerte

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Curso Android Miriadax
« Respuesta #136 en: 09 de Marzo de 2013, 07:39:28 »
nocturno.gracias por la ayuda.pero he implementado el codigo que has puesto.y el != no sirve ya que marca error.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Curso Android Miriadax
« Respuesta #137 en: 09 de Marzo de 2013, 07:42:33 »
Disculpa, pero me he confundido al teclear, no es admiración !=, sino tubería |=

Código: Java
  1. Check0.setOnClickListener(new CheckBox.OnClickListener(){
  2.           public void onClick(View v) {
  3.                if (Check0.isChecked()){
  4.                      varToggleOut|=(1<<0);      // en esta línea, cambias el 0 por el nº del checkbox
  5.                 }else{
  6.                      varToggleOut&=~(1<<0);     // en esta línea, cambias el 0 por el nº del checkbox
  7.                 }
  8.            TextOut.setText(String.valueOf(varToggleOut));
  9.           }
  10.         });

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Curso Android Miriadax
« Respuesta #138 en: 09 de Marzo de 2013, 08:11:00 »
A alguien le funciona el emulador con los sensores??
A mi solo me muestra la etiqueta de texto y nada mas...
Ademas sigo con el problema del error al salir de la actividad principal... :shock: :shock:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Curso Android Miriadax
« Respuesta #139 en: 09 de Marzo de 2013, 08:36:01 »
gracias nocturno.he implementado esto y funciona a las mil maravillas.

       Check0.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check0.isChecked()){varToggleOut|=(1<<0);}else{varToggleOut&=~(1<<0);}
              eventoCheck();
             }
           });
       Check1.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check1.isChecked()){varToggleOut|=(2<<0);}else{varToggleOut&=~(2<<0);}
              eventoCheck();
             }
           });
       Check2.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check2.isChecked()){varToggleOut|=(4<<0);}else{varToggleOut&=~(4<<0);}
              eventoCheck();
             }
           });
       Check3.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check3.isChecked()){varToggleOut|=(8<<0);}else{varToggleOut&=~(8<<0);}
              eventoCheck();
             }
           });
       Check4.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check4.isChecked()){varToggleOut|=(16<<0);}else{varToggleOut&=~(16<<0);}
              eventoCheck();
             }
           });
      
       Check5.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check5.isChecked()){varToggleOut|=(32<<0);}else{varToggleOut&=~(32<<0);}
              eventoCheck();
             }
           });
       Check6.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check6.isChecked()){varToggleOut|=(64<<0);}else{varToggleOut&=~(64<<0);}
              eventoCheck();
             }
           });
       Check7.setOnClickListener(new CheckBox.OnClickListener(){
             public void onClick(View v) {
              if (Check7.isChecked()){varToggleOut|=(128<<0);}else{varToggleOut&=~(128<<0);}
              eventoCheck();
             }
           });
      
   
}
      
   private void eventoCheck() {
      TextOut.setText(String.valueOf(varToggleOut));
   }

MGLSOFT a mi me funciona bien.

usas los log para encontrar errores? seria asi: if (DEBUG)Log.e(LOG_TAG, "HOLA "+variable); donde HOLA es el texto que te va a aparecer cuando el programa pase por esta linea.y variable un dato que quieras visualizar.aunque no hacefalta que la pongas si no quieres visualizar ningun dato.

y mira estas lineas.

protected void onDestroy(){
         super.onDestroy();   
      }

pon el log aqui para saber si llega a pasar por aqui o no.

ah.que no se te olvide declarar el log al principio de la clase.

 public static final boolean DEBUG = true;
    public static final String LOG_TAG = "Main";  //Main es el nombre de la clase.cambialo en la que estes
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Curso Android Miriadax
« Respuesta #140 en: 09 de Marzo de 2013, 08:44:54 »
Te puedes ahorrar <<0, puesto que es totalmente nulo. No estás aplicando rotación alguna.

Yo te proponía hacer
1<<0

1<<1

1<<2

1<<3

Pero eso es equivalente a poner 1,2,4,8,... que es lo que tú has hecho, así que puedes ahorrarte la rotación nula <<0

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Curso Android Miriadax
« Respuesta #141 en: 09 de Marzo de 2013, 09:14:32 »
se lo que quieres decir.algo como esto: if (Check0.isChecked()){varToggleOut|=1;}else{varToggleOut&=~ 1;}

lo he probado en las otras lineas y va bien.

pero los operadores << se que son de rotacion.pero no se exactamente como funcionan.

1<<2. cual es el indice y cual el estado?
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Curso Android Miriadax
« Respuesta #142 en: 09 de Marzo de 2013, 09:19:45 »
1<<2 = 00000001<<2 = 00000100 = 4

Hazte a la idea de que el operador m<<n  "empuja" n veces hacia la izquierda el dato m.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Curso Android Miriadax
« Respuesta #143 en: 09 de Marzo de 2013, 09:34:38 »
Tambien se pueden pensar cosas oscuras de lo que hace ese operador al otro... :D :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Curso Android Miriadax
« Respuesta #144 en: 09 de Marzo de 2013, 09:48:12 »
mientras no haya  un desbordamiento y no se produzca un acarreo .no hay peligro. :D
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Curso Android Miriadax
« Respuesta #145 en: 09 de Marzo de 2013, 16:55:29 »
necesitaba activar 8 checkBox a partir de un entero y lo he conseguido asi:

int statCheck=255;//valor de activacion de los checkBox
      int result=0;
      
      //for(int i=0; i<8; i++) {
         
         result=statCheck & 1;
         if (result==1){Check0.setChecked(true);}else{Check0.setChecked(false);}
         result=statCheck & 2;
         if (result==2){Check1.setChecked(true);}else{Check1.setChecked(false);}
         result=statCheck & 4;
         if (result==4){Check2.setChecked(true);}else{Check2.setChecked(false);}
         result=statCheck & 8;
         if (result==8){Check3.setChecked(true);}else{Check3.setChecked(false);}
         result=statCheck & 16;
         if (result==16){Check4.setChecked(true);}else{Check4.setChecked(false);}
         result=statCheck & 32;
         if (result==32){Check5.setChecked(true);}else{Check5.setChecked(false);}
         result=statCheck & 64;
         if (result==64){Check6.setChecked(true);}else{Check6.setChecked(false);}
         result=statCheck & 128;
         if (result==128){Check7.setChecked(true);}else{Check7.setChecked(false);}

solo hay que poner el valor en statCheck y los checkBox correspondientes se activaran. por si le sirve a alguien.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1099
Curso Android Miriadax
« Respuesta #146 en: 09 de Marzo de 2013, 20:18:09 »
Nocturno he bajado tu proyecto y he sustituido el mio por el tuyo, tras unos cuantos errores de archivo no sincronizado, he conseguido ponerlo en marcha.
Ahora tengo faena extra, ya que al estar mucho mas avanzado de lo que yo iba, tendre que estudiar e ir mirando tu codigo para ver lo que hiciste, en lugar de hacerlo yo.
Al menos he conseguido que deje de dar la tabarra, de momento. Intentare controlarlo para que no se desmadre.
Gracias por la ayuda.

Saludos.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Curso Android Miriadax
« Respuesta #147 en: 10 de Marzo de 2013, 02:41:30 »
Me alegro que te haya servido. Realmente no te perderás, porque me he limitado a copiar y pegar lo que aparece en el curso.
Suerte.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Curso Android Miriadax
« Respuesta #148 en: 10 de Marzo de 2013, 02:49:07 »
Groundman, he buscado si es posible hacer arrays de controles, y he encontrado algo que podrá simplificar bastante tu programa. Mira este ejemplo:

Código: Java
  1. Button[] buttons = new Button[10];
  2. EditText[] textboxes = new EditText[10];
  3.  
  4. View[][] buttonsAndEditboxes = new View[2][5];
  5.  
  6. // adds 10 buttons to one-dimensional array
  7. for (int i = 0; i < 10; i++) {
  8.    buttons[i] = new Button(this);
  9. }
  10.  
  11. // adds 10 editexts to one-dimensional array
  12. for (int i = 0; i < 10; i++) {
  13.    textboxes[i] = new EditText(this);
  14. }
  15.  
  16. for (int i = 0; i < 2; i++) {
  17.    for (int j = 0; j < 5; j++) {
  18.       if (i == 0) {
  19.          // adds 5 buttons to 2D array
  20.          buttonsAndEditboxes[i][j] = new Button(this);
  21.       } else {
  22.          // adds 5 edittexts to 2D array
  23.          buttonsAndEditboxes[i][j] = new EditText(this);
  24.       }
  25.    }
  26. }
  27.  
  28. // access first button from the one-dimensional array          
  29. Button fromOneDimensionalButton = buttons[0];
  30.  
  31. // access first EditText from the one-dimensional array
  32. EditText fromOneDimensionalEdit = textboxes[0];
  33.  
  34. // access Button from the two-dimensional array
  35. Button fromTwoDimensionalButton = (Button) buttonsAndEditboxes[0][0];
  36.  
  37. // access EditText from the two-dimensional array
  38. EditText fromTwoDimensionalEditText = (EditText) buttonsAndEditboxes[1][0];

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Curso Android Miriadax
« Respuesta #149 en: 10 de Marzo de 2013, 10:23:54 »
Manolo:
Porque no creas un nuevo hilo de MiriadaX y cortas y pegas estos mensajes alli, dejando un link a quienes no se dieron cuenta del cambio ??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything