Vous êtes sur la page 1sur 3

Correction EFM regional : Programmation Mobile

1. Activité : est la composante principale d'une application Android. L'activity est le métier de l'application et possède
généralement une View au minimum. Elle est représentée par la classe Activity.
Emulateur : outil qui aide à créer un périphérique virtuel Android(AVD) pour exécuter et tester les applications Android sur PC.
2. Etats du cycle de vie d’une activité :
«Active» :l'activité est visible et s'exécute au premier plan; La methode onResume est appelée.
onCreateonStartonResume ou onPauseonResume ou onPauseonStoponRestartonStartonResume
«En Pause» : l'activité s'exécute et est visible, mais elle n'est plus au premier plan. Une notification ou une autre activité
lui a volé le focus et une partie du premier plan; La methode onPause est appelée
«Stoppée» : l'activité n'est plus au premier plan et est invisible. L'activité ne peut interagir avec l'utilisateur qu'avec une
notification. La methode onStop est appelée
«Morte» : l'activité est détruite. La methode onDestroy est appelée
3. layout_below : dans RelativeLayout, il indique après quel élément doit être positionné l'élément portant cet attribut
layout_height : indique la hauteur de la vue par rapport au conteneur parent
layout_width : indique la largeur de la vue par rapport au conteneur parent
gravity : définit l’alignement du contenu (sous-vues)
4. Difference entre un ArrayAdapter simple et ArrayAdapter personnalisé
un ArrayAdapter est un objet de classe qui lie entre les données (tableau ou list) et une vue d'adapteur (AdapterView)
un ArrayAdapter simple utilise un item layout simple (prédéfini d’Android ou personnalisé) crée par un seul TextView,…
ex : ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.item,R.id.person_name,list);
un ArrayAdapter personnalisé utilise un item layout complexe qui utilise plusieurs élements et qui nécessite une redéfinition de
la méthode getView pour associer chaque donnée à un élement graphique de l’item layout
ex : ArrayAdapter<Person> adapter = new ArrayAdapter<Person>(this, R.layout.item,list) {
public View getView(int position,View layout,ViewGroup parent) {
View layout = super.getView(position, layout, parent); Person p=getItem(position);
TextView name=(TextView)layout.findViewById(R.id.name); name.setText(p.name);
ImageView photo=(ImageView)layout.findViewById(R.id.photo); photo.setImageResource(p.photo);
return layout; }};
5. Deux layouts permettant d’obtenir l’aspect suivant
<GridLayout android:orientation ="horizontal" <LinearLayout android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent">
android:rowCount="2" android:columnCount="2"> <TextView android:text="textView1"
<TextView android:text="textView1" android:layout_gravity="center" android:layout_gravity="center" android:layout_weight="1"
android:layout_rowSpan="2" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
android:layout_height="wrap_content"/> <LinearLayout android:orientation="vertical"
<TextView android:text="textView2" android:layout_gravity="center" android:layout_width="match_parent"
android:layout_column="1" android:layout_row="0" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_gravity="center" android:layout_weight="2">
android:layout_height="wrap_content"/> <TextView android:layout_width="wrap_content"
<TextView android:text="textView3" android:layout_gravity="center" android:layout_height="wrap_content"
android:layout_column="1" android:layout_row="1" android:layout_gravity="center" android:text="textView2"/>
android:layout_width="wrap_content" <TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"
</GridLayout> android:layout_gravity="center" android:text="textView3"/>
</LinearLayout></LinearLayout>
EX1 : Calculatrice (solution avec GridLayout)
<?xml version="1.0" encoding="utf-8"?> package efm205.ex1;
<GridLayout android:orientation ="horizontal" import androidx.appcompat.app.AppCompatActivity;
android:layout_width="match_parent" android:layout_height="wrap_content" import android.os.Bundle;
android:rowCount="5" android:columnCount="2" tools:context=".MainActivity"> import android.view.View;
import android.widget.*;
<TextView android:text ="Calculatrice" android:textSize="20dp" public class MainActivity extends AppCompatActivity {
android:layout_columnSpan="2" android:layout_gravity="center_horizontal" protected void onCreate(Bundle b) {
android:layout_width="wrap_content" android:layout_height="wrap_content"/> super.onCreate(b);
setContentView(R.layout.activity_main);
<TextView android:text ="Nombre 1 : " }
android:layout_width="wrap_content" android:layout_height="wrap_content"/> public void calculer(View v){
<EditText android:id="@+id/e1" android:inputType="numberSigned|numberDecimal" EditText e1=(EditText)findViewById(R.id.e1);
android:layout_width="match_parent" android:layout_height="wrap_content" /> EditText e2=(EditText)findViewById(R.id.e2);

<TextView android:text ="Nombre 2 : " String t1=e1.getText().toString();


android:layout_width="wrap_content" android:layout_height="wrap_content"/> String t2=e2.getText().toString();
<EditText android:id="@+id/e2" android:inputType="numberSigned|numberDecimal"
android:layout_width="match_parent" android:layout_height="wrap_content" /> if(t1.isEmpty())
{e1.setError("can not be empty"); return;}
<RadioGroup android:orientation="horizontal" android:gravity="center" if(t2.isEmpty())
android:layout_columnSpan="2" android:layout_gravity="fill" {e2.setError("can not be empty"); return;}
android:layout_width="match_parent" android:layout_height="wrap_content">
<RadioButton double n1=Double.parseDouble(t1);
android:id="@+id/plus" android:text="Plus" android:onClick="calculer" double n2=Double.parseDouble(t2);
android:layout_width="wrap_content" android:layout_height="wrap_content"/> double resultat=0.0;
<RadioButton
android:id="@+id/moins" android:text="Moins" android:onClick="calculer" switch(v.getId()){
android:layout_width="wrap_content" android:layout_height="wrap_content"/> case R.id.plus: resultat=n1+n2;break;
<RadioButton case R.id.moins:resultat=n1-n2;break;
android:id="@+id/mul" android:text="Mul" android:onClick="calculer" case R.id.mul: resultat=n1*n2;break;
android:layout_width="wrap_content" android:layout_height="wrap_content"/> case R.id.div: resultat=n1/n2;break;
<RadioButton }
android:id="@+id/div" android:text="Div" android:onClick="calculer"
android:layout_width="wrap_content" android:layout_height="wrap_content"/> TextView res=(TextView) findViewById(R.id.res);
</RadioGroup> res.setText(resultat+"");
}
<TextView android:text ="Resultat : " }
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
<TextView android:id="@+id/res"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</GridLayout>
<LinearLayout tools:context=".MainActivity" package efm205.ex2;
android:layout_width="match_parent" import androidx.appcompat.app.AppCompatActivity;
android:layout_height="match_parent" import android.os.Bundle;import android.view.View;
android:orientation="vertical"> import android.widget.*; import android.database.sqlite.SQLiteDatabase;
<TextView android:text="User Application" import android.content.ContentValues; import android.database.Cursor;
android:gravity="center" android:textSize="20dp" public class MainActivity extends AppCompatActivity {
android:layout_width="match_parent" SQLiteDatabase db;
android:layout_height="wrap_content"/> protected void onCreate(Bundle b) {
<EditText android:id="@+id/name" android:hint="Name" super.onCreate(b);
android:layout_width="match_parent" setContentView(R.layout.activity_main);
android:layout_height="wrap_content" try{
android:inputType="textPersonName"/> db=openOrCreateDatabase("BDUsers", Context.MODE_APPEND,null);
<EditText android:id="@+id/phone" db.execSQL("create table if not exists user(name TEXT,phone TEXT, email TEXT)");
android:layout_width="match_parent" }catch (Exception ex){}
android:layout_height="wrap_content" }
android:hint="Mobile Number" public void addUser(View v){
android:inputType="phone"/> EditText e1=(EditText)findViewById(R.id.name);
<EditText android:id="@+id/email" EditText e2=(EditText)findViewById(R.id.phone);
android:layout_width="match_parent" EditText e3=(EditText)findViewById(R.id.email);
android:layout_height="wrap_content" ContentValues cv=new ContentValues();
android:hint="Email Address" cv.put("name", e1.getText().toString());
android:inputType="textEmailAddress"/> cv.put("phone", e2.getText().toString());
<LinearLayout cv.put("email", e3.getText().toString());
android:layout_width="match_parent" db.insert("user",null,cv);
android:layout_height="wrap_content"> }
<Button android:text="Add User" android:gravity="center" public void viewAll(View v){
android:layout_weight="1" android:onClick="addUser" Intent intent= new Intent(MainActivity.this,ViewAllActivity.class);
android:layout_width="wrap_content"
android:layout_height="wrap_content"/> c = db.rawQuery("SELECT * FROM user", null);
<Button android:text="View All" android:gravity="center" ArrayList<String> l = new ArrayList<String>();
android:layout_weight="1" android:onClick="viewAll" while(c.moveToNext())
android:layout_width="wrap_content" l.add("name:"+c.getString(0)+",phone:"+c.getString(1)+",email:"+c.getString(2));
android:layout_height="wrap_content"/> intent.putExtra("lst",l);
</LinearLayout> startActivity(intent);
</LinearLayout> }
}
<LinearLayout tools:context=".ViewAllActivity" package efm205.ex2;
android:layout_width="match_parent" import androidx.appcompat.app.AppCompatActivity;
android:layout_height="match_parent"> import android.os.Bundle;import android.widget.*;
<ListView android:id="@+id/list" public class ViewAllActivity extends AppCompatActivity {
android:layout_width="match_parent" protected void onCreate(Bundle b) {
android:layout_height="wrap_content"/> super.onCreate(b);
</LinearLayout> setContentView(R.layout.activity_viewAll);
Intent intent=getIntent();
ArrayList<String> l=(ArrayList<String>)intent.getSerializableExtra("lst");
ArrayAdapter<String> adapter = new
ArrayAdapter<>(this,android.R.layout.simple_list_item_1,l);
ListView list=(EditText)findViewById(R.id.list);
list.setAdapter(adapter);
}}

Vous aimerez peut-être aussi