bonjour,
dans mon application Android j'ai rencontré un petit problème :
j'utilise un FrameLayout comme item dans une ListView pour caché un petit menu ( un LinearLayout avec 3 bouton) et l'afficher au clic sur l'item dans la meme positon.
alors le problème est la , quand je modifier la Visibilité du menu ça marche, mais il s'affiche dans la 1er position de la liste même si je clique sur la dernière ou le dernier item !!!
quand on clic sur chaque item je fais ça :
ici je récupère le menu directement, je pense que c'est la le problème !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 LinearLayout layout =(LinearLayout) findViewById(R.id.menu); layout.setVisibility(View.VISIBLE);
voici le fichier item
et la j'ajoute mes items a la listview
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 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/item" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:padding="10px" /> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:paddingLeft="10px" android:layout_weight="1" > <TextView android:id="@+id/titre" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textSize="16px" android:textStyle="bold" /> <TextView android:id="@+id/description" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/menu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:orientation="horizontal" android:visibility="invisible" > <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button2" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> <Button android:id="@+id/button3" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout> </FrameLayout>
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 map = new HashMap<String, String>(); map.put("titre", "Excel"); map.put("description", "Tableur"); map.put("img", String.valueOf(R.drawable.ic_launcher)); listItem.add(map); map = new HashMap<String, String>(); map.put("titre", "Power Point"); map.put("description", "Logiciel de présentation"); map.put("img", String.valueOf(R.drawable.ic_launcher)); listItem.add(map); map = new HashMap<String, String>(); map.put("titre", "Outlook"); map.put("description", "Client de courrier électronique"); map.put("img", String.valueOf(R.drawable.ic_launcher)); listItem.add(map); SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.item, new String[] {"img", "titre", "description"}, new int[] {R.id.img, R.id.titre, R.id.description}); //On attribut à notre listView l'adapter que l'on vient de créer maListViewPerso.setAdapter(mSchedule); //Enfin on met un écouteur d'évènement sur notre listView maListViewPerso.setOnItemClickListener(new OnItemClickListener() { @Override @SuppressWarnings("unchecked") public void onItemClick(AdapterView<?> a, View v, int position, long id) { LinearLayout layout =(LinearLayout) findViewById(R.id.menu); layout.setVisibility(View.VISIBLE); } }); }
Partager