Créez un projet de test, vérifiez et observez le cycle de vie de l'activité et utilisez l'intention pour passer d'une activité à l'autre :
1. Créez le projet TestActivity ;
2. Créez SecondActivity et la mise en page correspondante ;
3. Réécrivez les méthodes d'événements du cycle de vie telles que onStart() et onResume() dans MainActivity et SecondActivity, et utilisez Log pour afficher les informations du journal ;
4. Écrivez la méthode onClick() pour cliquer sur le bouton dans MainActivity et utilisez Intent pour ouvrir SecondActivity ;
5. Exécutez le programme et observez le déclenchement de chaque méthode d'événement du cycle de vie pendant les processus de création, d'affichage, de fermeture, de commutation et autres processus de récupération d'affichage de l'activité.
0.Créer un projet
Créez simplement un projet selon vos besoins
1. Créez SecondActivity et la mise en page correspondante
Dans Android Studio, cliquez avec le bouton droit sur le répertoire du projet app
et sélectionnez « Nouveau » > « Activité » > « Activité vide ».
Nommez la nouvelle activité comme SecondActivity
et choisissez lors de la création du fichier de mise en pageactivity_second.xml
Définir laactivity_second.xml
disposition dans
Voici un exemple simple contenant un TextView et un Button :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:gravity="center">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is SecondActivity"
android:textSize="18sp"
android:textColor="#000"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go Back"
android:id="@+id/backButton"/>
</LinearLayout>
obtenir un effet
2. Remplacer les méthodes de cycle de vie
Importez TAG et définissez des balises constantes
Assurez-vous d'importer android.util.Log
la classe et de définir une balise constante
private val TAG = "SecondActivity"
Dans MainActivity
et SecondActivity
, remplacez les méthodes de cycle de vie qui nécessitent une observation (par exemple MainActivity
, etc. ).SecondActivity
onStart()
onResume()
Log
Et utilisez les informations du journal de sortie dans ces méthodes .
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart() called");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume() called");
}
Copiez directement dans Android Studio et il sera automatiquement converti ! !
code converti
override fun onStart() { super.onStart() Log.d(TAG, "onStart() called") } override fun onResume() { super.onResume() Log.d(TAG, "onResume() called") }
Code d'activité principale
package com.leo.activity_1
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.activity.ComponentActivity
class MainActivity : ComponentActivity() {
private val TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
}
override fun onStart() {
super.onStart()
Log.d(TAG, "onStart() called")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "onResume() called")
}
fun openSecondActivity(view: View?) {
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
}
}
Code de deuxième activité
package com.leo.activity_1
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
class SecondActivity : AppCompatActivity() {
private val TAG = "SecondActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.second)
}
override fun onStart() {
super.onStart()
Log.d(TAG, "onStart() called")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "onResume() called")
}
fun goBack(view: View?) {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}
}
3.Ouvrir la deuxième activité
Bouton Ajouter
Ajoutez un bouton activity_main.xml
et ajoutez android:onClick="openSecondActivity"
des attributs au bouton, qui associeront l'événement et openSecondActivity
la méthode de clic sur le bouton
S'il
activity_main.xml
n'existe pas, créez-le vous-même
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open Second Activity"
android:id="@+id/openSecondButton"
android:layout_centerInParent="true"
android:onClick="openSecondActivity" />
</RelativeLayout>
Ajouter une méthode
Comment écrire des boutons dans MainActivity onClick()
:
public void openSecondActivity(View view) {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
code ktlion
fun openSecondActivity(view: View?) { val intent = Intent(this, SecondActivity::class.java) startActivity(intent) }
4. Exécutez le programme et observez les événements du cycle de vie :
- Dans Android Studio, cliquez sur le bouton vert Exécuter pour exécuter votre application.
- Sur l'émulateur ou l'appareil Android connecté, appuyez sur le bouton pour déclencher le saut vers
SecondActivity
. - Observez la sortie dans la fenêtre Logcat, visualisez l'appel des méthodes de cycle de vie et comprenez le processus de création, d'affichage, de fermeture et de commutation de l'activité.
Le transfert de l’image du lien externe a échoué. Le site source peut avoir un mécanisme anti-sangsue. Il est recommandé de sauvegarder l’image et de la télécharger directement.
S'il apparaît
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.leo.activity_1/com.leo.activity_1.SecondActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
, il y a un problème d'incompatibilitéIl faut cliquer
mainifests
, changer le thème en@style/Theme.AppCompat.DayNight.DarkActionBar
obtenir un effet