Bonjour,
Cela fait des heures que je cherche une solution à mon problème, j’abandonne les recherches, je post ici!
J'ai une activity avec avec un viewpager contenant 3 fragments. sur le premier fragment, j'ai des imagesView
A la création des fragments, je lis des valeurs dans un tableau et en fonction de son contenu, pour chaque imageView j'affecte une image.
A l'aide de registerForContextMenu, j'ai un menu qui s'ouvre quand je fais un clique long sur une image, je selectionne une action qui recharge mes données dans mon tableau et ensuite j'aimerai changer les image des imageView en fonction des nouvelles valeurs.
Mais je ne suis plus dans le fragment pour realiser cela et impossible de trouver l'imageView.
Comment faire?
La création de mes fragments:
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 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { switch (Integer.parseInt(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER)))) { case 1: final ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_salle1, container, false); ImageView Table10 = (ImageView) rootView.findViewById(R.id.table10); // menu supplementaire new Thread(new Runnable() { @Override public void run() { telechargement_gestion_tables(); getActivity().runOnUiThread(new Runnable() { @Override public void run() { ImageView Table10 = (ImageView) rootView.findViewById(R.id.table10); if (ListegestionTables.get(9).equals("1")) { Table10.setBackgroundColor(Color.RED); } } }); // progressDoalog.dismiss(); } }).start(); registerForContextMenu(Table10); return rootView; case 2: ViewGroup rootView2 = (ViewGroup) inflater.inflate(R.layout.fragment_salle2, container, false); return rootView2; case 3: ViewGroup rootView3 = (ViewGroup) inflater.inflate(R.layout.fragment_salle3, container, false); return rootView3; } return null; }
Le code pou rafraichir suite a l'appui long sur l'image:
Dans ce code je reprend le meme que lors de la création du fragment, mais ici getActivity est en erreur et rootView n'est pas reconnu..
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 public boolean onContextItemSelected(MenuItem item) { // AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); if(item.getTitle()=="Action 1") { getActivity().runOnUiThread(new Runnable() { @Override public void run() { ImageView Table10 = (ImageView) rootView.findViewById(R.id.table10); if (ListegestionTables.get(9).equals("1")) { Table10.setBackgroundColor(Color.RED); } } }); } else{ return false; } return true; }
Une idée pour pouvoir changer mon image de mon imageView? ou bien recréer le fragment? ou une autre idée.
Merci,
TouFou
Partager