Dynamic-Mess.com


"The world is a dynamic mess of jiggling things..."

Android : Ce qu'il faut savoir sur les activités

Article posté le 21-07-2014 dans la catégorie Android

Suite au précédent tutoriel, voici comment créer une nouvelle activité en plus de celle déja présente par défaut dans tout nouveau projet. Explications également pour pouvoir lancer cette nouvelle activité depuis la première.

1- La base

Tout d'abord, sous Eclipse, créez un projet avec une activité vide : "Blank Activity". Elle se nomme par défaut "MainActivity".

Vous avez donc deux fichiers :

Le premier concerne le code de l'activité principale, lancée par votre application Android au démarrage, et le second concerne les élements d'affichage.

Voici ce que contient votre fichier Java :

package com.example.tutoriel;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends ActionBarActivity {
 @Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
}
 @Override
public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
}
 @Override
public boolean onOptionsItemSelected(MenuItem item) {
  // Handle action bar item clicks here. The action bar will
  // automatically handle clicks on the Home/Up button, so long
  // as you specify a parent activity in AndroidManifest.xml.

  int id = item.getItemId();
  if (id == R.id.action_settings) {
   return true;
  }
  return super.onOptionsItemSelected(item);
}
}

Au lancement de l'application, Android lance la méthode onCreate. Le paramètre de type Bundle est null si vous lancez l'application ou contient les informations sauvegardées si elle était en pause.

super.onCreate(savedInstanceState);

Ici nous décidons de ce qui dot être fait à chaque démarrage. Puis enfin, nous affichons l'interface graphique par défaut :

setContentView(R.layout.activity_main);

Vous devez savoir que :

2- Créer la nouvelle activité

A- l'interface graphique

Tout d'abord, dans le répertoire res/layout, créez un fichier appelé mon_activity.xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <TextView
        android:id="@+id/monMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Voici mon message"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>

B- Le code

Ensuite, dans le répertoire src, créez un nouvelle classe: monActivite.

Ouvrez-là. Ici, vous devrez mettre le code de votre activité, par exemple l'écoute des boutons, les calculs, etc... Mais nous, nous allons juste nous contenter de faire un petit réglage pour que l'Activité soit prête, c'est à dire la faire hériter de la classe Acitivity, et appeler le chargement du layout que vous avez créé pour cette activité :

package com.example.tutoriel;
import android.app.Activity;
import android.os.Bundle;
public class monActivite extends Activity{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mon_activity);
    }
}

3- Appeler la nouvelle activité depuis la principale

A présent, ouvrez activity_main.xml. Rajoutez ceci dans votre layout :

<Button
        android:id="@+id/go_to_my_activity"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="152dp"
        android:text="Vas-y" />

Enregistrez-tout. Allez à présent dans votre fichier MainActivity.java. Dans la méthode onCreate rajoutez ceci :

final Button boutonGoToEmailForm = (Button) findViewById(R.id.go_to_my_activity);
        boutonGoToEmailForm.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, monActivite.class);
                startActivity(intent);
            }
        });

Ici nous avons mis en place un listener : un écouteur sur le bouton go_to_my_activity. En cas de pression sur le bouton, il lance l'activité via l'Intent créé en dessous.

Dernière étape : chaque activité doit être déclarée dans le manifeste : AndroidManifest.xml :

<activity
            android:name=".monActivite"
            android:label="Mon Activité" />

A présent, à vous de tester votre code !


Tweet
comments powered by Disqus