Problème android .
alexandra883
Messages postés
1
Statut
Membre
-
BunoCS Messages postés 16550 Date d'inscription Statut Modérateur Dernière intervention -
BunoCS Messages postés 16550 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
- Presse papier android - Guide
- À quoi sert google drive sur 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.