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és15505Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention 5 février 2025
-
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. */publicclassContactimplements Serializable {privateStringnom;privateStringprenom;privateStringtel;publicContact(Stringnom,Stringprenom,Stringtel){this.nom = nom;this.prenom = prenom;this.tel = tel;}publicStringgetNom(){return nom;}publicStringgetPrenom(){return prenom;}publicStringgetTel(){return tel;}publicvoidsetNom(Stringnom){this.nom = nom;}publicvoidsetPrenom(Stringprenom){this.prenom = prenom;}publicvoidsetTel(Stringtel){this.tel = tel;}publicStringtoString(){returnthis.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()publicclassMainActivityextends AppCompatActivity implements AdapterView.OnItemClickListener {//Attribut CheeseAdapterprivateContactAdapteradapter =newContactAdapter(this);
@Override
protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListViewlist =(ListView)findViewById(R.id.listView);
list.setAdapter(adapter);
list.setOnItemClickListener(this);}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){getMenuInflater().inflate(R.menu.menu_main, menu);returntrue;}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){int id = item.getItemId();if(id == R.id.action_settings){returntrue;}returnsuper.onOptionsItemSelected(item);}publicvoidcontact1(Viewv){IntentmonIntent =newIntent(this,ContactAdapter.class);startActivityForResult(monIntent,102);}publicvoidcontactAjoute(Viewv){IntentmonIntent =newIntent(this,ContactAdapter.class);startActivityForResult(monIntent,101);}//Gestion des evenements
@Override
publicvoidonItemClick(AdapterView<?>parent,Viewview,int position,long id){ContacteltClique=(Contact) adapter.getItem(position);
Toast.makeText(this, eltClique.toString(), Toast.LENGTH_SHORT).show();//Renvoi vers ContactActivityIntenta=newIntent(this,ContactActivity.class);
a.putExtra("contact", eltClique);startActivityForResult(a,100);}
@Override
protectedvoidonActivityResult(int requestCode,int resultCode,Intentdata){// Vérification du code de retour// Vérifie que le résultat est OKif(requestCode ==100){if(resultCode == RESULT_OK){// On récupére la balise de l'intent dataContactcontact =(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é}elseif(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 :
publicclassContactActivityextends AppCompatActivity {
@Override
protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_contact);Contactc1 =(Contact)getIntent().getSerializableExtra("contact");TextViewctc =(TextView)findViewById(R.id.editText);TextViewctc1 =(TextView)findViewById(R.id.editText2);TextViewctc2 =(TextView)findViewById(R.id.editText3);
ctc.setText(c1.getNom());
ctc1.setText(c1.getPrenom());
ctc2.setText(c1.getTel());}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_contact, menu);returntrue;}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){// 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 SimplifiableIfStatementif(id == R.id.action_settings){returntrue;}returnsuper.onOptionsItemSelected(item);}//-------------BOUTON OK---------------------------------------------------------------------publicvoidactionOK(Viewv){Contacttoto =newContact("","","");//Recuperer et retourner le nom grâce aux itemsEditTextit =(EditText)findViewById(R.id.editText);Stringnom = it.getText().toString();
toto.setNom(nom);//Recuperer et retourner le prenom grâce aux itemsEditTextit1 =(EditText)findViewById(R.id.editText2);Stringprenom = it1.getText().toString();
toto.setPrenom(prenom);//Recuperer et retourner le telephone grâce aux itemsEditTextit2 =(EditText)findViewById(R.id.editText3);Stringtel = it2.getText().toString();
toto.setTel(tel);//Ajouter un extra (data) permettant d'echanger une info avec MainActivity// Ajout des balises correspondant au contact modifiéIntentdata =newIntent();
data.putExtra("contact", toto);// Intent contact = getIntent();
data.getIntExtra("contact",-1);
data.putExtra("contact", toto);//Je renvoye maintenant le résultatsetResult(RESULT_OK, data);finish();}//------------BOUTTON ANNULER-------------------------------------------------------------------publicvoidactionAnnuler(Viewv){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. */publicclassContactAdapterextends BaseAdapter{//Attribut ContextprivateContextcont ;//Attribut (ArrayList<String>)privateArrayList<Contact>listeContact =new ArrayList<>();//ConstructeurpublicContactAdapter(Contextc){this.cont=c;ContactBernard =newContact("Bernard ","Benoit ","0630124578");ContactMuller =newContact("Muller ","Veronique ","0600112244");ContactJean =newContact("Jean ","Eude ","0612345678");ContactHoert =newContact("Hoert ","JC ","0612457896");this.listeContact.add(Bernard);this.listeContact.add(Muller);this.listeContact.add(Jean);this.listeContact.add(Hoert);}
@Override
publicintgetCount(){return listeContact.size();}
@Override
publicObjectgetItem(int position){return listeContact.get(position);}
@Override
publiclonggetItemId(int position){return position;}
@Override
publicViewgetView(int position,ViewconvertView,ViewGroupparent){// convertView null ?if(convertView ==null){LayoutInflaterinflater =(LayoutInflater) cont.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.presentation,null);}// Recuperation de litem a la positionStringval = listeContact.get(position).toString();// Recuperation du composant (ici un TextView)TextViewitemView =(TextView) convertView.findViewById(R.id.textView2);// Mise en place de laffichage
itemView.setText(val);return convertView;};publicbooleanadd(Contactobject){return listeContact.add(object);}publicContactget(int index){return listeContact.get(index);}publicContactremove(int index){return listeContact.remove(index);}publicintsize(){return listeContact.size();}publicContactset(int index,Contactobject){return listeContact.set(index, object);}}//RIEN EN DESSOUS !!!!!!!!!!!!!!!!!!!!!