2010-08-28 20 views
28

Sembra che ogni esempio che posso trovare di passaggio tra attività comporta la creazione di un intento e il passaggio nel contesto di una vista tramite un OnClickListener associato a un pulsante.Su Android, come commuti le attività a livello di programmazione?

Ma se decidessi di cambiare attività? Nel mio caso, un valore di preferenza sta causando un interruttore di attività.

Come si crea un intent che può causare uno switch di attività senza OnClickListener associato?

+8

“Attività”, non “Attività di”. Per favore. –

risposta

60

Questo dovrebbe farlo per voi:

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

È possibile chiamare tale da qualsiasi punto della attività corrente.

+1

è possibile passare il nome dell'attività come stringa? – mhshams

+4

@Mohammad Non in base a nessuna delle firme pubbliche che ho visto, ma ciò che si potrebbe fare è usare 'Class.forName (nome di classe completo)' per restituire un oggetto 'Class' e quindi passare quell'oggetto' Class' a il costruttore 'Intent'. –

2

Usa PreferenceChangeListener :)

1

È possibile creare intent nell'attività principale in questo modo

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

Se si è in attesa per il risultato dalla seconda quindi si dovrebbe utilizzare

StartActivityforresult(intent,request code).

Il codice di richiesta può essere qualsiasi integer.

2

quando vuoi cambiare attività. puoi chiamare questo codice

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

È possibile scrivere questo codice in PreferenceChangeListener.

+0

hai duplicato gli altri ragazzi rispondono esattamente ... vieni con la risposta del tuo rown. – Brian

3

devo più breve versione

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

Dipende da dove si desidera iniziare la nuova attività nel codice. È necessario l'accesso a un riferimento al contesto per avviare una nuova attività (ad esempio: onPostExecute in AsyncTask). Si prega di dare un'occhiata a this.

Anche se è fondamentalmente questo.

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

Può essere qualcosa di simile pure

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

Ho trovato divertente come hai fatto lo stesso errore di battitura della risposta accettata con il nome della classe 'AvitivityName';) Potresti averlo semplicemente indicato in un commento che conosci :) – AxelH

+0

@AxelH Yeah;) Fammi unire, mi sento bene ora, vero? –

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

Non dimenticare di aggiungere attività al tuo manifesta

<Activity android:name=".NextActivity> 
0

In primo luogo è necessario creare interfaccia utente per un pulsante utilizzando il file intro_activity_1.XML di layout. Dopo di che id impostato per gruppo di pulsanti con Android: id = "@ + id tasto /"

Esempio:

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" /> 

Ora cambiare la classe Java della prima attività. In questo esempio, cambiamo il file java di IntroActivity1.java

Esempio:

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); 
     } 
    }); 
} 

Per Maggiori informazioni su attività changer visita: https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-android.html

Problemi correlati