Ok La suite c'est du côté de la vue. j'ai hate de voir le resultat.
Nous allons designer une vue pour tester la fonctionnalité d'ajout d'une nouvelle personne. Vous savez déjà qu'a chaque activité est associé une vue. Notre vue d'ajout ressemblera à ceci:
Voici le code source du notre vue(activity_add_people.xml):
<TableLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.gasmyr.peoplemanager.PeopleAddActivity"
android:background="@drawable/bg9">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="30dp">
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textAlignment="center"
android:textSize="30dp"
android:elegantTextHeight="true"
android:text="@string/add_form"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="5dp"
android:background="@drawable/back2"></LinearLayout>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/fname"
android:textSize="25dp"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/fname"/>
</TableRow>
<TableRow>
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/lname"
android:textSize="25dp"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/lname"/>
</TableRow>
<TableRow>
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/age"
android:textSize="25dp"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/age"/>
</TableRow>
<TableRow>
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/phone"
android:textSize="25dp"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/phone"/>
</TableRow>
<TableRow>
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/email"
android:textSize="25dp"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/email"/>
</TableRow>
<TableRow>
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/gender"
android:textSize="25dp"/>
<RadioGroup>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/male"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/female"/>
</RadioGroup>
</TableRow>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="10dp"
android:background="@drawable/back2"></LinearLayout>
<LinearLayout android:layout_width="fill_parent">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<Button android:layout_width="fill_parent"
android:text="@string/cancel"
android:id="@+id/cancel"/>
<Button android:layout_width="fill_parent"
android:text="@string/save"
android:id="@+id/save"/>
</TableRow>
</TableLayout>
</LinearLayout>
</TableLayout>
</TableLayout>
Nous allons implementé juste la fonctionnalité d'ajout et l'article suivant nous permettra de realiser la fonctionnalité de listing. Nous allons donc placé un écouteur sur le bouton save qui nous permettra de réagir au clic et de recupérer les informations saisies par l'utilisateur.
voici le coe final de la classe PeopleAddActivity:
package com.example.gasmyr.peoplemanager;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import org.w3c.dom.Text;
import java.util.ArrayList;
public class PeopleAddActivity extends Activity {
private RadioGroup genderGroupe;
private PeopleCrud peopleCrud;
private ArrayList<People> peopleArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_people_add);
peopleCrud= new PeopleCrud(getApplicationContext());
Button save=(Button)findViewById(R.id.save);
genderGroupe=(RadioGroup)findViewById(R.id.gender);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText fname=(EditText)findViewById(R.id.fname);
EditText lname=(EditText)findViewById(R.id.lname);
EditText age=(EditText)findViewById(R.id.age);
EditText phone=(EditText)findViewById(R.id.phone);
int tel= Integer.parseInt(phone.getText().toString());
EditText email=(EditText)findViewById(R.id.email);
RadioButton gender= (RadioButton)findViewById(genderGroupe.getCheckedRadioButtonId());
People people=new People(fname.getText().toString(),lname.getText().toString(),
tel ,phone.getText().toString(),
email.getText().toString(),gender.getText().toString());
peopleCrud.open();
peopleCrud.AddPeople(people);
}
});
Button cancel=(Button)findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
peopleArrayList=peopleCrud.getAllPeople,
Toast.makeText(getApplicationContext(),
"Taille de la liste" +peopleArrayList.size(),Toast.LENGTH_LONG).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_people_add, 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();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Et Voici le résultat sur mon l'émulateur HTC:
Le clic sur le bouton cancel nous affiche la taille de la liste des personnes enregistrées. comme ceci:
C'était bon pour un debut. la prochaine fois nous verrons quelque chose un peu plus complet en respectant les best practices de la programmation sous android. rappelons que le code écrit ici n'est pas très professionnelle car le but était de montrer comment utiliser les bases de données sous android. Un article sous les Bonnes pratiques en programmation sous android va bientôt surgit ainsi qu'un sesecond sur l'utilisation des Fragments( un concept introduit dans l'API 11 <<Android 3.0>> pour la modularité et la gestion des tailles d'écrans multiples comme les smartphones et les tablettes. ).
Laisser les commentaires si vous avez des incomprehensions, je suis à votre disposition chaque jour. Merci