Conception de l'interface utilisateur selon l'approche hybride
Selon cette approche, XML est utilisé pour créer les chaînes de caractères, faire la mise en page et créer les composants de l'interface utilisateur, tandis que Java est utilisé pour assigner les gestionnaires d'événements.
L'application "Hellodroid Hybride" affiche un message dans un toast lorsque l'on clique sur un bouton.
MainActivity.java
package net.codeandroid.hellodroidhybride; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // cette ligne doit précéder tout appel à findViewById setContentView(R.layout.activity_main); // récupération d'un composant et assignation d'un gestionnaire Button bouton = (Button)findViewById(R.id.bouton); bouton.setOnClickListener(new Toaster()); } // gestionnaire d'événement (ici sous forme de classe interne) private class Toaster implements View.OnClickListener { @Override public void onClick(View bouton) { String texteMessage = getString(R.string.message); Toast message = Toast.makeText( MainActivity.this, texteMessage, Toast.LENGTH_SHORT); message.show(); } } }
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/texte_fenetre" /> <!-- on a besoin de créer un ID pour y accéder dans le code Java --> <Button android:id="@+id/bouton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/texte_bouton" /> </LinearLayout>
activity_main.xml
<resources> <string name="app_name">Hellodroid Hybride</string> <string name="texte_fenetre"> Pressez le bouton pour recevoir un gentil message de Bugdroid. </string> <string name="texte_bouton">Afficher le message</string> <string name="message">Bugdroid vous dit bonjour!</string> </resources>