Estoy respondiendo a un amigo de Ecuador la duda que tenia. Hoy les voy a contar cómo llamar un Activity desde fragment. Si estás programando en Android y estás en medio de un fragmento, seguro que terminas haciéndote esta pregunta. ¿Como llamar a un activity des un fragment?
Ya desde hace unas cuantas APIs atrás tenemos los fragmentos para programar apps Android más bonitas. Pero si estás programando y estás dentro de un fragmento, verás que si pones el código de siempre para invocar la actividad no te va a funcionar. Aquí tenemos una guía de cómo pasar de un layout a otro, pero se hace distinto.
En este tutorial, voy a contarte rápidamente como hago siempre. Empezamos el tuto porque verás que es muy fácil:
PASO 1: Debemos crear nuestro fragment e insertar un botón dentro.
Editamos nuestro activity_main.xml
activity_main
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:text="ENTRAR" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btn1" /> </FrameLayout>
También debemos crear otro activity, deben hacerlo como muestro en la siguiente imagen, yo le puse de nombre SegundoActivity.
Hacer clic en la imagen para ver mejor
Ahora debemos ir a nuestro MainActivity.java y empezar con el código del ejercicio.
MainActivity
public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); controlador(); } public void controlador() { Button entry = (Button) findViewById(R.id.btn1); //hago clic y se abre el 2 entry.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this.getBaseContext(), SegundoActivity.class); startActivity(intent); } }); } }
Si observamos un poco el código arriba vemos que hay gran diferencia cuando hacíamos entre Activity y Activity:
Intent ListFruta = new Intent(getApplicationContext(), SegundoActivity.class); startActivity(ListFruta );
Y el cambio de Fragment a Activity es fácil:
Intent ListFruta = new Intent(MainActivity.this.getBaseContext(),SegundoActivity.class); startActivity(ListFruta );
Igual si piensas que hablo escribo en chino te dejo el ejercicio:
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!
Agradezco el ejemplo pero la verdad es que quisiera hacerlo mas explicito creando un Fragment completo y de ese pasar a una actividad, el ejemplo como esta si funciona pero no me ayudo mucho gracias.
Discúlpeme desde luego, soy un principiante que recién estoy aprendiendo, nuevamente gracias.