Choisir un item d'une listeview
Bonjour,
Voici ma listeview :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/listemployes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:dividerHeight="0.1dp"
android:divider="#0000CC">
</ListView>
</FrameLayout> |
Voici ma relative layout :
Code:
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
|
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="2dp"
>
<TextView
android:id="@+id/textViewNom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/profile_pic"
android:paddingBottom="10dp"
android:textSize="20sp"
android:textColor="@color/blue"
android:textStyle="bold"
android:width="140dp"
/>
<TextView
android:id="@+id/textViewPrenom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textViewNom"
android:layout_below="@+id/textViewNom"
android:textSize="16sp" />
<TextView
android:id="@+id/textViewTelephone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textViewPrenom"
android:layout_alignBottom="@+id/textViewPrenom"
android:layout_alignParentRight="true"
android:textSize="16sp"
/>
<Button
android:id="@+id/btn_details"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:text="Plus de détails"
android:layout_alignLeft="@+id/textViewTelephone"
android:layout_below="@+id/textViewTelephone"
android:layout_alignParentLeft="true"
android:layout_marginTop="15dip"
android:layout_marginLeft="110dip"
android:onClick="transferer"/>
</RelativeLayout> |
Activités(tout en sachant que je récupère les données depuis une base de données) :
Code:
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 124 125
|
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
lv = (ListView) findViewById(R.id.listemployes);
TaskWs task = new TaskWs();
task.execute();
}
public void transferer(View v) {
TextView tv_telephone = (TextView)findViewById(R.id.textViewTelephone);
final String telephone = tv_telephone.getText().toString();
TextView TVnom = (TextView)findViewById(R.id.textViewNom);
String nom = TVnom.getText().toString();
TextView TVprenom = (TextView) findViewById(R.id.textViewPrenom);
String prenom = TVprenom.getText().toString();
ad = new AlertDialog.Builder(MyActivity.this)
.setTitle("Employé")
.setMessage("Nom : "+nom)
.setMessage("Prénom : "+prenom)
.setSingleChoiceItems(monadaptateur, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "appeler "+telephone, Toast.LENGTH_LONG).show();
dialog.cancel();
}
})
.setPositiveButton("Appeler",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(telephone.trim()));
startActivity(callIntent );
dialog.cancel();
}
})
.setNegativeButton("Ajouter contact", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
ArrayList < ContentProviderOperation > ops = new ArrayList < ContentProviderOperation > ();
ops.add(ContentProviderOperation.newInsert(
ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
if (nom != null) {
ops.add(ContentProviderOperation.newInsert(
ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
nom).build());
}
if (telephone != null) {
ops.add(ContentProviderOperation.
newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, telephone)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
.build());
}
dialog.cancel();
}
}).show();
}
} |
Ce qui marche :
* La liste s'affiche normalement avec ses items(et donc aucun problème avec la base).
* Ajouter contact marche normalement.
Ce qui ne marche pas :
1) Appeler : ne marche pas ! avec un message d'erreur :
"android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL dat=003312345678 }"
2) quand je clique sur un item, c'est les données d'un autre item qui s'affiche!!!!
3) Avec une "alertDialog" je peux pas afficher plusieurs données????
.setMessage("Nom : "+nom)
.setMessage("Prénom : "+prenom)
.setMessage("Téléphone : "telephone)
ça ne marche pas!!
Objectifs :
Donc je dois avoir une liste de mes employés(c'est bon) :
Nom
Prenom
Telephone
[Plus de détails]
Ou même sans bouton ! Le plus important quand je clique sur "item" une "AlertDialog" s'affiche et me propose tous les détails :
Nom
Prenom
Telephone
Mail
Adresse
avec 2 boutons : [Appeler] / [Ajouter contact]
Remarque :
J'ai essayé une autre méthode :
Code:
1 2 3 4 5 6 7 8
|
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View viewItem, int position, long arg3) throws NullPointerException {
} |
mais ça n'a pas marché!!!! (Quand je clique sur un item rien ne se passe)
Je vous remercie d'avance.