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 créer une liste de contacts où nous pouvons : ajouter, supprimer, modifier et appeler un contact sélectionné ou annuler la sélection. Le bouton "annuler" 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... Les boutons "supprimer", "appeler" et "ajouter" ne marchent pas . J'ai donc enlevé 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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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 !!!!!!!!!!!!!!!!!!!!!
Le layout activity_contact
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<RelativeLayout 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.e1401506.contact.ContactActivity">
 
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="CONTACT"
        android:id="@+id/textView3"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
 
    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ok"
        android:id="@+id/button"
        android:onClick="actionOK"
        android:layout_alignTop="@+id/button4"
        android:layout_centerHorizontal="true"
        />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="Nom"
        android:ems="10"
        android:id="@+id/editText"
        android:layout_marginTop="53dp"
        android:layout_below="@+id/textView3"
        android:layout_alignLeft="@+id/editText2"
        android:layout_alignStart="@+id/editText2" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="Prenom"
        android:ems="10"
        android:id="@+id/editText2"
        android:layout_below="@+id/editText"
        android:layout_alignLeft="@+id/editText3"
        android:layout_alignStart="@+id/editText3" />
 
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text="Telephone"
        android:ems="10"
        android:id="@+id/editText3"
        android:layout_below="@+id/editText2"
        android:layout_alignLeft="@+id/textView3"
        android:layout_alignStart="@+id/textView3" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Nom"
        android:id="@+id/textView4"
        android:layout_alignTop="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Prénom"
        android:id="@+id/textView5"
        android:layout_below="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Téléphone"
        android:id="@+id/textView6"
        android:layout_alignTop="@+id/editText3"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Annuler"
        android:id="@+id/button2"
        android:layout_alignTop="@+id/button4"
        android:layout_toRightOf="@+id/textView4"
        android:layout_toEndOf="@+id/textView4"
        android:onClick="actionAnnuler"/>
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Appeler"
        android:id="@+id/button3"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/editText3"
        android:layout_alignStart="@+id/editText3"
        android:layout_marginBottom="76dp" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Supprimer"
        android:id="@+id/button4"
        android:layout_above="@+id/button3"
        android:layout_toRightOf="@+id/textView3"
        android:layout_toEndOf="@+id/textView3" />
 
</RelativeLayout>
Le layout activity_main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:fitsSystemWindows="true"
    tools:context=".MainActivity">
 
    <android.support.design.widget.AppBarLayout android:layout_height="wrap_content"
        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">
 
        <android.support.v7.widget.Toolbar android:id="@+id/toolbar"
            android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />
 
    </android.support.design.widget.AppBarLayout>
 
    <include layout="@layout/content_main" />
 
    <android.support.design.widget.FloatingActionButton android:id="@+id/fab"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />
 
</android.support.design.widget.CoordinatorLayout>
et le layout presentation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView2" />
</LinearLayout>
ainsi que le layout content_main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto" 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"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_main" tools:context=".MainActivity">
 
    <TextView android:text="Hello World!" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>
Merci d'avance !!!