Problème android .
alexandra883
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
BunoCS Messages postés 15952 Date d'inscription Statut Modérateur Dernière intervention -
BunoCS Messages postés 15952 Date d'inscription Statut Modérateur Dernière intervention -
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 :
La classe MainActivity :
La classe ContactActivity :
La classe ContactAdapter
Le layout activity_contact
Le layout activity_main
et le layout presentation
ainsi que le layout content_main
Merci d'avance !!!!!
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 !!!!!!!!!!!!!!!!!!!!!
Le layout activity_contact
<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
<?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
<?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
<?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 !!!!!
A voir également:
- Problème android .
- Android recovery - Guide
- Begone android - Accueil - Protection
- À quoi sert google drive sur android - Guide
- Historique presse-papier android - Guide
- Emulateur pokemon android - Guide
1 réponse
Hello,
Je n'ai pas tout regardé, mais voici quelques pistes
Le "Click to Call" se fait avec un intent:
Ne pas oublier la permission
Ensuite, pour rafraichir l'écran après modification, il faut appeler
Concernant le bouton Ajouter, normal que cela ne fonctionne pas:
Si tu regarde les paramètres de l'intent, il faut passer le contexte (ou l'Activity parente) et le type d'Activity à créer. Donc, à la place de
En espérant que cela t'aide à avancer.
Je n'ai pas tout regardé, mais voici quelques pistes
Le "Click to Call" se fait avec un intent:
Intent callIntent = new Intent(Intent.ACTION_CALL); callIntent.setData(Uri.parse("tel:"+txtPhn.getText().toString())); callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(callIntent);
Ne pas oublier la permission
android.permission.CALL_PHONEdans le Manifest.
Ensuite, pour rafraichir l'écran après modification, il faut appeler
notifyDataSetChanged()sur ton adapter.
Concernant le bouton Ajouter, normal que cela ne fonctionne pas:
public void contactAjoute (View v){ Intent monIntent = new Intent(this,ContactAdapter.class); startActivityForResult(monIntent, 101); }
Si tu regarde les paramètres de l'intent, il faut passer le contexte (ou l'Activity parente) et le type d'Activity à créer. Donc, à la place de
ContactAdapter.class, il faut passer
ContactActivity.class.
En espérant que cela t'aide à avancer.