Les composants et attributs couramment utilisés dans Android

Pour contrôler l'oriantation de l'écran, utilisez la méthode suivante :


setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Affichage en mode portrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // Affichage en mode paysage
 

Ajoutez cette ligne après l'appel à setContentView(R.layout.activity_one); dans votre classe d'activité.

  1. Affichage et saisie en ligne unique

Pour configuerr le texte pour s'afficher sur une seule ligne :


<!-- Configuration de l'affichage du texte sur une seule ligne -->
android:singleLine="true";
 
  1. Implémentation de TabActivity

a. Fichier de mise en page :


<RelativeLayout 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"
   tools:context=".ActiviteDeux" >

   <TabHost 
       android:id="@+id/tabHostLivres"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       >
       <LinearLayout 
           android:id="@+id/livresLus"
           android:orientation="vertical"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           >
           <TextView
               android:text="La Frontière"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
           <TextView
               android:text="La Cité"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
           <TextView
               android:text="Le Cerf-voliste"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
       </LinearLayout>
       
       <LinearLayout 
           android:id="@+id/livresEnCours"
           android:orientation="vertical"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           >
           <TextView
               android:text="L'Amour à la ville"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
           <TextView
               android:text="Mille Soleils"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
           <TextView
               android:text="Vivre"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
       </LinearLayout>
       
       <LinearLayout 
           android:id="@+id/livresALire"
           android:orientation="vertical"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           >
           <TextView
               android:text="Cent Ans de Solitude"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
           <TextView
               android:text="L'Éléphant dans la pièce"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
           <TextView
               android:text="Confession"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               />
       </LinearLayout>
   </TabHost>

</RelativeLayout>
 

b. Code de l'activité :


public class ActiviteDeux extends TabActivity {
   public TabHost tabHostLivres = null;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       tabHostLivres = getTabHost();
       LayoutInflater.from(this).inflate(R.layout.activite_deux, tabHostLivres.getTabContentView(), true);
       tabHostLivres.addTab(tabHostLivres.newTabSpec("lus").setIndicator("Lus").setContent(R.id.livresLus));
       tabHostLivres.addTab(tabHostLivres.newTabSpec("encours").setIndicator("En cours").setContent(R.id.livresEnCours));
       tabHostLivres.addTab(tabHostLivres.newTabSpec("alire").setIndicator("À lire").setContent(R.id.livresALire));
   }  
}
 

Rmearque : Actuellement, l'approche recommandée est d'utiliser ViewPager avec des fragments.

  1. Suggestions de saisie de texte

a. Code de mise en page :


<AutoCompleteTextView 
       android:id="@+id/acTextViewNom"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="Entrez le nom :"
       android:textColor="#000"
       android:maxLength="10"
       />
<MultiAutoCompleteTextView
       android:id="@+id/macTextViewVille"
       android:layout_below="@id/acTextViewNom"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:hint="Entrez la ville :"
       android:textColor="#000"
       android:maxLength="5"
       />
 

b. Code de l'activité :


public class ActiviteCinq extends Activity {
   
   private AutoCompleteTextView acTextViewNom;
   private MultiAutoCompleteTextView macTextViewVille;
   private String [] noms = {"Alice","Bob","Charlie","David","Eve"};
   private String [] villes = {"Paris","Londres","Tokyo","New York","Berlin"};
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activite_cinq);
       acTextViewNom = (AutoCompleteTextView) findViewById(R.id.acTextViewNom);
       macTextViewVille = (MultiAutoCompleteTextView) findViewById(R.id.macTextViewVille);
       ArrayAdapter<string> adaptNoms = new ArrayAdapter<string>(this, android.R.layout.simple_dropdown_item_1line, noms); 
       acTextViewNom.setAdapter(adaptNoms);
       ArrayAdapter<string> adaptVilles = new ArrayAdapter<string>(this, android.R.layout.simple_dropdown_item_1line, villes);
       macTextViewVille.setAdapter(adaptVilles);
       macTextViewVille.setThreshold(1); // Définir le nombre de caractères pour commencer la correspondance
       macTextViewVille.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); // Définir le séparateur
   }
   
}
 </string></string></string></string>
  1. Envoi de diffusion (Broadcast)

a. Création du contenu de diffusion :


public class ActiviteUne extends Activity {
   final String ACTION_DIFFUSION = "com.exemple.DiffusionDemo"; // Adresse de diffusion personnalisée
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activite_une);
       Intent intent = new Intent(ACTION_DIFFUSION);
       intent.putExtra("nom", "Samsung"); // Contenu de la diffusion
       ActiviteUne.this.sendBroadcast(intent); // Envoyer la diffusion
   }
}
 

b. Déclaration dans AndroidManifest.xml :


<!-- Définir le récepteur de diffusion -->
       <receiver 
           android:name="com.exemple.MonRecepteurDiffusion"
           android:enabled="true"
           >
           <intent-filter>
               <action android:name="com.exemple.DiffusionDemo" />
           </intent-filter>            
       </receiver>
 

c. Réception de la diffusion :


public class MonRecepteurDiffusion extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
       String nom = intent.getStringExtra("nom"); // Recevoir les données de la diffusion
       Toast.makeText(context, " " + nom, Toast.LENGTH_SHORT).show();
   }

}
 
  1. Vérification de l'état du réseau utilisateur


public class ActivitePrincipale extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activite_principale);
       // Obtenir l'objet de connexion réseau
       ConnectivityManager gestionnaireConnexion = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
       NetworkInfo infoReseau = gestionnaireConnexion.getActiveNetworkInfo();
       
       Toast.makeText(ActivitePrincipale.this, "Réseau " + estDisponible(infoReseau.isAvailable()) + "," + "Réseau " + estConnecte(infoReseau.isConnected()) + "," + "Connexion réseau " + existe(infoReseau.isConnected()), Toast.LENGTH_LONG).show();
   }
   
   String estDisponible(Boolean disponible) {
       String statut = "indisponible";
       if (disponible) {
           statut = "disponible";
       }
       return statut;
   }
   
   String estConnecte(Boolean connecte) {
       String statut = "non connecté";
       if (connecte) {
           statut = "connecté";
       }
       return statut;
   }
   
   String existe(Boolean existe) {
       String statut = "n'existe pas !";
       if (existe) {
           statut = "existe !";
       }
       return statut;
   }
   
}
 

Remarque : Ajoutez la permission dans AndroidManifest.xml : <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

  1. Stockage avec SharedPreferences


SharedPreferences prefs = getSharedPreferences(NOM_FICHIER, Context.MODE_APPEND);
               Editor editeur = prefs.edit(); // Obtenir l'objet éditeur
               editeur.clear();
               editeur.putString("nom", nomUtilisateur);
               editeur.putString("motDePasse", motDePasse);
               editeur.commit(); // Soumettre et sauvegarder le contenu
 

Remarque : NOM_FICHIER est un identifiant unique que nous définissons pour faciliter la recherche et la modification.

  1. Récupération du contenu de SharedPreferences


SharedPreferences prefs = getSharedPreferences(NOM_FICHIER, Context.MODE_PRIVATE);
               String nomRecupere = prefs.getString("nom", "");
               String motDePasseRecupere = prefs.getString("motDePasse", "");
 

Remarque : NOM_FICHIER doit correspondre à celui défini précédemment pour récupérer le contenu sauvegardé. La méthode getString("nom", "") prend deux paramètres : le premier est l'étiquette des données stockées, et le second est la valeur de retour par défaut si les données n'existent pas.

  1. Utilisation de Toast

a. Forme système intégrée :


Toast.makeText(getApplicationContext(), "Notification système intégrée", Toast.LENGTH_SHORT).show();
 

b. Forme personnalisée :


Toast toast = new Toast(getApplicationContext());
               toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); // Définir la position d'affichage
               toast.setDuration(Toast.LENGTH_LONG); // Définir la durée d'affichage
               
               toast.setView(getLayoutInflater().inflate(R.layout.activite_deux, null)); // Définir une vue personnalisée

               toast.show();
 

Étiquettes: Android TabActivity autocompletetextview BroadcastReceiver SharedPreferences

Publié le 6 juin à 06h41