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 :
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 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 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
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 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 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
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 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_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
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>
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
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>
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 <?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>
Merci d'avance !!!
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>
Partager