PDA

Ver la Versión Completa : [ CONSULTA ] Duda con Intent


anggar
03/03/12, 12:02:12
Hola estoy con mi primer programa
ya hace lo que quiero y calcula una serie de cosas que necesito.

pero ahora queria implementar unas pantallas de ayuda
el tema es que siguiendo un tutorial por youtube lo hago y me sale bien
es decir creo un nuevo ayuda01.xml y le doy a un boton de la pantalla principal la utilidad de cambiar de pantalla y sale sin problema
el problema es cuando desde esa otra pantalla hago lo mismo para volver a la vnetana principal entonces me sale un error y el programa se cuelga.

Os pongo lo que he hecho a ver si alguien ve el problema.

desde aqui me voy a la segunda pantalla.

ayuda01=(ImageView)findViewById (R.id.ibAyuda01);
ayuda01.setOnClickListener(this);

public void onClick(View v) {
// TODO Auto-generated method stub

switch (v.getId()){
case R.id.ibAyuda01:

// lo que nos pasa a otra ventana

Intent intent1=new Intent ("com.app.tecnich.es.ayuda01");
startActivity (intent1);



break;

y apra volver desde la segunda pantalla


volvermenu01 = (Button) findViewById (R.id.btVolvermenu01);
volvermenu01.setOnClickListener(this)

public void onClick(View v) {
// TODO Auto-generated method stub
// esto nos devuelve a la ventana principal

switch (v.getId()){

case R.id.btVolvermenu01:

Intent intent1=new Intent ("com.app.tecnich.es.main");
startActivity (intent1);

break;
}

en el manifiest:

<application
android:icon="@drawable/iconoehe1"
android:label="@string/app_name"

>
<activity
android:name=".SPINNERActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>


<activity
android:name=".Ayuda01"
android:label="@string/app_name1" >
<intent-filter>
<action android:name="com.app.tecnich.es.ayuda01" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

Gracias por la ayuda

kriogeN
03/03/12, 13:42:46
Esa no es una forma muy correcta de hacerlo, para Activities que pertenecen a la misma aplicación lo mejor es hacer esto:

Intent intent = new Intent(ClaseActual.this, NuevaClase.class);
startActivity(intent);

Que en tu caso supongo que sería algo así para la pantalla de ayuda:

Intent intent = new Intent(Main.this,Ayuda01.class);

Y para volver a la pantalla anterior puedes hacerlo de 2 formas:

1) Simplemente con: finish()

Haciendo esto se cerrará Ayuda01 y volverás a Main, la ventaja de usar este método es que si en Main hay cuadros de texto, o checkboxs, o lo que sea, que el usuario ha modificado antes de ir a Ayuda01, seguirán marcados cuando el usuario vuelva

2) Creando la Intent al revés que la anterior y además liberando el TOP, así:

Intent intent = new Intent(Ayuda01.this, Main.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

Haciendolo así se creará una nueva Activity Main, pero completamente inicializada, además con el flag de CLEAR TOP el sistema automaticamente liberará todas las pantallas que fueron creadas sobre el último Main, así que si por ejemplo abres una ventana de ayuda desde el main, que a su vez abre otra ventana de ayuda y luego vuelves al Main creando un nuevo Intent con el flag de CLEAR TOP, las 2 ventanas de ayuda que se crearon sobre el Main se liberarán.

anggar
04/03/12, 09:36:31
Gracias kirogeN

probare lo que me dices aunque el 1º metodo me parece el apropiado ya que el segundo me obligaria a guardar todos los datos antes de pasar a la pantalla de ayuda y refrescar la pantalla inicial al volver.

Parece facil

aunque he estado trasteando la Dev Guide y creo que seria mas facil usando TOAST o DIALOG he visto que se puede hacer lo qeu quiero que es muy basico en realidad es solo una ayuda de cada uno de los valores que pide la aplicacion y la mayoria solo son texto aunqeu en alguno habria que meter una imagen y he visto que con el toast se puede hacer.

Gracias de nuevo ya te dire si me ha funcionado.

anggar
04/03/12, 09:37:18
Por cierto

no hay en ningun sitio una traduccion del DEV Guide ni de la Reference
es que mi ingles es muy limitadito

saludos.

galcober
10/03/12, 10:14:11
siempre puedes tirar de google traductor. pero si te quieres dedicar a este mundo deberias empezar a leer guias en inglés YA