English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Quatre méthodes pour gérer l'événement de basculement d'activity en Android

Code d'implémentation spécifique :

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
// méthode1. utilise une classe qui implémente l'interface OnClickListener 
((Button) findViewById(R.id.btn1); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity1); 
startActivity(intent); 
} 
}); 
// méthode2. utilise une classe anonyme interne 
((Button) findViewById(R.id.btn2); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity2); 
startActivity(intent); 
} 
}); 
// méthode3. Activity implémente directement l'interface OnClickListener 
((Button) findViewById(R.id.btn3); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity3); 
MainActivity.this.startActivity(intent); 
} 
}); 
// méthode4.le tag directement indique l'événement déclencheur 
((Button) findViewById(R.id.btn4); 
.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MainActivity.this, 
ButtonActivity4); 
MainActivity.this.startActivity(intent); 
} 
}); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Infler le menu ; cela ajoute des éléments à la barre d'action si elle est présente. 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
// Gérez les clics sur les éléments de la barre d'action ici. La barre d'action sera 
// gère automatiquement les clics sur le Home/Bouton de haut, aussi longtemps que 
// comme vous spécifiez une activité parente dans AndroidManifest.xml. 
int id = item.getItemId(); 
if (id == R.id.action_settings) { 
return true; 
} 
return super.onOptionsItemSelected(item); 
}

Dans le code ci-dessus :

1La classe MainActivity que nous avons créée doit hériter de Activity

2、il est nécessaire de redéfinir la méthode onCreate et de charger le fichier layout correspondant via la méthode setContentView

3、le contrôle correspondant peut être trouvé par la méthode findViewById (les contrôles définis dans le fichier layout) et un événement de clic peut être lié (implémenté par un écouteur dans Java, par un delegate en C#)

4、les données peuvent être transmises via un objet Intent et l'Activity peut être redirigée vers une autre Activity

5、onCreateOptionsMenu et onOptionsItemSelected sont les méthodes appelées lors de l'ajout et de la sélection d'une option de menu.

Voici le contenu des quatre activités respectivement :

Première :

public class ButtonActivity1 extends Activity { 
Button button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button1); 
button = (Button) findViewById(R.id.btn1); 
button.setOnClickListener(new MyListener()); 
} 
public class MyListener implements OnClickListener { 
@Override 
public void onClick(View v) { 
Toast.makeText(ButtonActivity1.this, "Ceci est la première écriture de l'événement, définissant l'événement dans une classe interne", 2000).show(); 
} 
} 
}

Deuxième :

public class ButtonActivity2 extends Activity { 
Button button ; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button2); 
button = (Button)findViewById(R.id.btn1); 
button.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
Toast.makeText(ButtonActivity2.this, "Ceci est la deuxième écriture de l'événement, sous forme de classe interne anonyme", 2000).show(); 
} 
}); 
} 
}

Troisième :

public class ButtonActivity3 extends Activity implements OnClickListener { 
Button button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button3); 
button= (Button)findViewById(R.id.btn1); 
button.setOnClickListener(this); 
} 
@Override 
public void onClick(View v) { 
switch (v.getId()) { 
case R.id.btn1: 
Toast.makeText(ButtonActivity3.this, 
"Ceci est la troisième écriture de l'événement, implémentant directement la méthode OnClick de l'interface OnClickListener", 2000).show(); 
break; 
default: 
Toast.makeText(ButtonActivity3.this, "aucun déclenchement", 2000).show(); 
break; 
} 
} 
}

Quatrième :

Il faut spécifier la méthode btnClickEvent dans le fichier de conception layout.xml.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.example.test.Button"4Activity" > 
<Button 
android:id="@"+id/btn4" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="cliquez sur moi" 
android:onClick="btnClickEvent"/> 
</LinearLayout> 
public class ButtonActivity4 extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_button4); 
} 
public void btnClickEvent(View v){ 
Toast.makeText(ButtonActivity4.this, "C'est la quatrième écriture de l'événement, lie directement l'événement Click au tag Button du fichier de conception" 2000).show(); 
} 
}

ci-dessus4Cette écriture, la3Cette méthode est utilisée relativement plus souvent. Lorsqu'il y a plusieurs boutons dans une activité qui doivent déclencher l'événement click, via le3Cette écriture est plus facile à gérer et à maintenir le code des événements du bouton.

La conception est un contenu important, je le décrirai dans le blog suivant, je le mentionne simplement ici.

Nous utilisons LinearLayout (conception linéaire, d'autres comme la conception relative, la conception absolue, etc.), et avons défini la valeur de l'attribut Android:orientation sur vertical (vertical), affichant les contrôles en ordre croissant de haut en bas.

Autres3les fichiers de conception de l'interface graphique sont identiques à ce contenu, ils ne contiennent qu'un seul bouton.

Voici la configuration de activity_main.xml (simplement placé un bouton)4un bouton) :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.test.MainActivity" > 
<Button 
android:id="@"+id/btn1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe1" /> 
<Button 
android:id="@"+id/btn2" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe2" /> 
<Button 
android:id="@"+id/btn3" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe3" /> 
<Button 
android:id="@"+id/btn4" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:text="@string/clickMe4" 
android:onClick="btnClickEvent"/> 
</LinearLayout>

L'étape la plus importante, vous devez configurer l'Activity enregistrée dans le fichier AndroidManifest.xml, voici la configuration complète :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.test" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-sdk 
android:minSdkVersion="14" 
android:targetSdkVersion="14" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<application 
android:allowBackup="true" 
android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" 
android:theme="@style/AppTheme" > 
<activity 
android:name=".MainActivity" 
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=".ButtonActivity1" 
android:label="@string/button1" /> 
<activity 
android:name=".ButtonActivity2" 
android:label="@string/button2" /> 
<activity 
android:name=".ButtonActivity3" 
android:label="@string/button3" /> 
<activity 
android:name=".ButtonActivity4" 
android:label="@string/button4" /> 
</application> 
</manifest>

Il y a un point à noter ici,

<action android:name="android.intent.action.MAIN" />

Définir MainActivity comme "Activité principale", c'est-à-dire l'Activity qui s'affiche en premier au démarrage.

Les multiples activités ci-dessous doivent être enregistrées dans le fichier manifeste pour que le programme puisse trouver ces Activity.

Contenu de configuration du fichier strings.xml :

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string name="app_name">test</string>/string> 
<string name="hello_world">Bonjour le monde !</string>/string> 
<string name="action_settings">Paramètres</string>/string> 
<string name="clickMe1">événement bouton1</string> 
<string name="clickMe2">événement bouton2</string> 
<string name="clickMe3">événement bouton3</string> 
<string name="clickMe4">événement bouton4</string> 
<string name="bouton1">bouton1</string> 
<string name="bouton2">bouton2</string> 
<string name="bouton3">bouton3</string> 
<string name="bouton4">bouton4</string> 
</resources>

Bien sûr, vous pouvez également écrire directement dans le fichier layout, mais cela est plus avantageux pour la maintenance, c'est aussi la méthode recommandée par le développement Android.

Les quatre méthodes d'écriture des événements de basculement d'activity en Android que l'éditeur vous présente ci-dessus devraient vous être utiles. Si vous avez des questions, laissez un message, l'éditeur vous répondra à temps. Merci également de votre soutien au site de tutoriels à cris !

Déclaration : Le contenu de cet article est issu du réseau, propriété de ses auteurs respectifs, le contenu est contribué et téléchargé par les utilisateurs d'Internet, ce site ne détient pas de droits de propriété, n'a pas été traité par l'éditeur humain et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)

Vous pourriez aussi aimer