2010-08-28 12 views
28

Parece que todos los ejemplos que puedo encontrar de cambiar de actividades implican crear una intención y pasar en el contexto de una vista a través de un OnClickListener asociado con un botón.En Android, ¿cómo se cambian las actividades programáticamente?

Pero, ¿y si decides que necesitas cambiar de actividad? En mi caso, un valor de preferencia está causando un cambio de actividad.

¿Cómo se crea una intención que puede causar un cambio de actividad sin un OnClickListener asociado?

+8

“Actividades”, no “Actividad de”. Por favor. –

Respuesta

60

Esto debe hacerlo por usted:

Intent myIntent = new Intent(this, MyActivityName.class); 
startActivity(myIntent); 

se le puede llamar desde cualquier lugar de su actividad actual.

+1

¿es posible pasar el nombre de la actividad como una cadena? – mhshams

+4

@Mohammad No de acuerdo con ninguna de las firmas públicas que he visto, pero lo que se puede hacer es usar 'Class.forName (nombre de clase totalmente calificado)' para devolver un objeto 'Class' y luego pasar ese objeto' Class' a el constructor 'Intent'. –

2

Uso PreferenceChangeListener :)

1

Puede crear intent en la actividad principal como esto

Intent intent = new Intent(FirstActivity.this, second.class); 
startActivity(intent); 

Si usted está esperando para el resultado de la segunda, entonces debería usar

StartActivityforresult(intent,request code).

El código de solicitud puede ser cualquier integer.

2

cuando quiera cambiar de actividad. Puedes llamar a estos códigos.

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

Puede escribir este código en PreferenceChangeListener.

+0

duplicastete a los otros tipos, responde exactamente ... ven con tu respuesta de rown. – Brian

3

tengo la versión más corta

startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class)); 
5

Depende donde desea iniciar la nueva actividad en el código. Necesita el acceso a una referencia de contexto para comenzar una actividad nueva (por ejemplo: onPostExecute en AsyncTask). Por favor, eche un vistazo a this.

Aunque es básicamente esto.

Intent myIntent = new Intent(this, ActivityName.class); 
startActivity(myIntent); 

Puede ser algo como esto, así

Intent myIntent = new Intent(context, ActivityName.class); 
context.startActivity(myIntent); 
+0

Me pareció gracioso cómo se hizo exactamente el mismo error que la respuesta aceptada con el nombre de clase 'AvitivityName';) Podría haber señalado que en un comentario sabes :) – AxelH

+0

@AxelH Sí;) Déjame fusionarlo, siento bien ahora, ¿verdad? –

1
startActivity (new Intent (Thisactivity.this, Nextactivity.class)); 

No se olvide de agregar actividad a su manifiesta

<Activity android:name=".NextActivity> 
0

En primer lugar es necesario crear una interfaz de usuario para botón mediante el uso del archivo de diseño intro_activity_1.XML. Después de eso Identificación del conjunto de grupo de botones usando android: id = "@ + Identificación del botón /"

Ejemplo:

intro_activity_1.xml

<Button android:id="@+id/button"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:layout_weight="1"  
android:background="@android:color/transparent"  
android:text="NEXT" /> 

Ahora cambiar su clase Java de primera actividad. En este ejemplo, cambiamos el archivo java de IntroActivity1.java

Ejemplo:

IntroActivity1.java

//header, import and package data 


public class IntroActivity1 extends AppCompatActivity { 


    Button next_btn; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.intro_activity_1); 

      next_btn=(Button)findViewById(R.id.button);//button class 

      next_btn.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View arg0){ 
     //Start new activity class 
       Intent myIntent=new Intent(IntroActivity1.this,IntroActivity2.class); 
      startActivity(myIntent); 
     } 
    }); 
} 

Para más detalles acerca de la actividad de la visita cambiador: https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-android.html

Cuestiones relacionadas