alexandra883
Messages postés1Date d'inscriptionjeudi 2 octobre 2008StatutMembreDernière intervention14 décembre 2015
-
Modifié par baladur13 le 14/12/2015 à 16:40
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024
-
15 déc. 2015 à 09:38
Bonjour,
J'ai un petit problème pour finir mon projet Android Studio...
Je suis étudiante en DUT R&T et nous avons comme projet de creer une liste de contact où nous pouvons : ajouter , supprimer , modifier et appeler un contact sélectionné ou annuler la sélection.
Le bouton annulé fonctionne.
Le bouton ok fonctionne également.
Mais le bouton modifier , il le modifie dans le toast mais pas dans l'affichage et je comprend pas pourquoi ...
Le bouton supprimer , appeler et ajouter ne marchent pas . J'ai donc enlever du code ceux là et je cherche toujours comment faire ...
Je vous affiche les codes , si vous pouviez m'aider , c'est à rendre pour demain ...
La classe Contact :
package com.alexandra883.contact;
import java.io.Serializable;
/**
* Created by e1401506 on 22/10/2015.
*/
public class Contact implements Serializable {
private String nom;
private String prenom;
private String tel;
public Contact (String nom, String prenom, String tel){
this.nom = nom;
this.prenom = prenom;
this.tel = tel;
}
public String getNom(){
return nom;
}
public String getPrenom() {
return prenom;
}
public String getTel() {
return tel;
}
public void setNom (String nom){
this.nom = nom;
}
public void setPrenom (String prenom){
this.prenom = prenom;
}
public void setTel (String tel){
this.tel = tel;
}
public String toString() {
return this.nom + this.prenom + this.tel;
}
}//RIEN EN DESSOUS
La classe MainActivity :
package com.alexandra883.contact;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import com.example.alexandra883.contact.R;
// getIntent().getSerializableExtra()
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
//Attribut CheeseAdapter
private ContactAdapter adapter = new ContactAdapter(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView) findViewById(R.id.listView);
list.setAdapter(adapter);
list.setOnItemClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void contact1 (View v){
Intent monIntent = new Intent(this,ContactAdapter.class);
startActivityForResult(monIntent, 102);
}
public void contactAjoute (View v){
Intent monIntent = new Intent(this,ContactAdapter.class);
startActivityForResult(monIntent, 101);
}
//Gestion des evenements
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Contact eltClique= (Contact) adapter.getItem(position);
Toast.makeText(this, eltClique.toString(), Toast.LENGTH_SHORT).show();
//Renvoi vers ContactActivity
Intent a= new Intent(this,ContactActivity.class);
a.putExtra("contact", eltClique);
startActivityForResult(a, 100);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Vérification du code de retour
// Vérifie que le résultat est OK
if(requestCode == 100) {
if (resultCode == RESULT_OK) {
// On récupére la balise de l'intent data
Contact contact = (Contact) data.getSerializableExtra("contact");
adapter.set(data.getIntExtra("position", -1), contact);
//Rafraichir la page après modifs
adapter.notifyDataSetChanged();
// Affichage du résultat
Toast.makeText(this, contact.toString(), Toast.LENGTH_SHORT).show();
// Si l'activité est annulé
}
else if (resultCode == RESULT_CANCELED) {
// On affiche que l'opération est annulée
Toast.makeText(this, "Opération annulée", Toast.LENGTH_SHORT).show();
}
}
}
//
}//RIEN EN DESSOUS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
La classe ContactActivity :
public class ContactActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact);
Contact c1 = (Contact) getIntent().getSerializableExtra("contact");
TextView ctc = (TextView) findViewById(R.id.editText);
TextView ctc1 = (TextView) findViewById(R.id.editText2);
TextView ctc2 = (TextView) findViewById(R.id.editText3);
ctc.setText(c1.getNom());
ctc1.setText(c1.getPrenom());
ctc2.setText(c1.getTel());
}
@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_contact, 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);
}
//-------------BOUTON OK---------------------------------------------------------------------
public void actionOK(View v){
Contact toto = new Contact("","","");
//Recuperer et retourner le nom grâce aux items
EditText it = (EditText) findViewById(R.id.editText);
String nom = it.getText().toString();
toto.setNom(nom);
//Recuperer et retourner le prenom grâce aux items
EditText it1 = (EditText) findViewById(R.id.editText2);
String prenom = it1.getText().toString();
toto.setPrenom(prenom);
//Recuperer et retourner le telephone grâce aux items
EditText it2 = (EditText) findViewById(R.id.editText3);
String tel = it2.getText().toString();
toto.setTel(tel);
//Ajouter un extra (data) permettant d'echanger une info avec MainActivity
// Ajout des balises correspondant au contact modifié
Intent data = new Intent();
data.putExtra("contact", toto) ;
// Intent contact = getIntent();
data.getIntExtra("contact", -1);
data.putExtra("contact", toto);
//Je renvoye maintenant le résultat
setResult(RESULT_OK, data);
finish();
}
//------------BOUTTON ANNULER-------------------------------------------------------------------
public void actionAnnuler (View v) {
setResult(RESULT_CANCELED);
finish();
}
}//RIEN EN DESSOUS
La classe ContactAdapter
package com.alexandra883.contact;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.alexandra883.contact.Contact;
import com.example.alexandra883.contact.R;
import java.util.ArrayList;
/**
* Created by e1401506 on 22/10/2015.
*/
public class ContactAdapter extends BaseAdapter{
//Attribut Context
private Context cont ;
//Attribut (ArrayList<String>)
private ArrayList<Contact> listeContact = new ArrayList<>();
//Constructeur
public ContactAdapter (Context c) {
this.cont=c;
Contact Bernard = new Contact ("Bernard ", "Benoit ", "0630124578");
Contact Muller = new Contact("Muller ", "Veronique ", "0600112244");
Contact Jean = new Contact ("Jean ", "Eude ", "0612345678");
Contact Hoert = new Contact ("Hoert ", "JC ", "0612457896");
this.listeContact.add(Bernard);
this.listeContact.add(Muller);
this.listeContact.add(Jean);
this.listeContact.add(Hoert);
}
@Override
public int getCount() {
return listeContact.size();
}
@Override
public Object getItem(int position) {
return listeContact.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// convertView null ?
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) cont.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.presentation, null);
}
// Recuperation de litem a la position
String val = listeContact.get(position).toString();
// Recuperation du composant (ici un TextView)
TextView itemView = (TextView) convertView.findViewById(R.id.textView2);
// Mise en place de laffichage
itemView.setText(val);
return convertView;
};
public boolean add(Contact object) {
return listeContact.add(object);
}
public Contact get(int index) {
return listeContact.get(index);
}
public Contact remove(int index) {
return listeContact.remove(index);
}
public int size() {
return listeContact.size();
}
public Contact set(int index, Contact object) {
return listeContact.set(index, object);
}
}//RIEN EN DESSOUS !!!!!!!!!!!!!!!!!!!!!