Bonjour,
J'ai un fragment CustomFragment (cf ci dessous) contenant un ViewPager qui permet de swiper sur plusieurs vues (Il s'agit d'un même fragment Fragment2 qui permet de peupler une ListView avec des données externes)
Et son CustomFragmentAdapter
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 public class CustomFragment extends Fragment { private ViewPager mPager; private TitlePageIndicator mIndicator; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.my_fragment, container, false); mPager = (ViewPager) rootView.findViewById(R.id.pager); mIndicator = (TitlePageIndicator) rootView.findViewById(R.id.indicator); return rootView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mAdapter = new CustomFragmentAdapter(getChildFragmentManager()); mPager.setAdapter(mAdapter); mIndicator.setFooterIndicatorStyle(IndicatorStyle.Triangle); mIndicator.setViewPager(mPager); } }
Et enfin mon Fragment2
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 public class CustomFragmentAdapter extends FragmentStatePagerAdapter { private String[] users = {"X","Y","Z"}; /*********************************************/ public CustomFragmentAdapter ( FragmentManager fm) { super(fm); } /*********************************************/ @Override public Fragment getItem(int position) { return Fragment2.newInstance(users[position]); } /*********************************************/ @Override public int getCount() { return users.length; } /*********************************************/ @Override public int getItemPosition(Object object){ return PagerAdapter.POSITION_NONE; } /*********************************************/ @Override public CharSequence getPageTitle(int position) { return users[position]; } @Override public void destroyItem(View collection, int position, Object view) { ((ViewPager) collection).removeView((View) view); } }
Mon problème : Lorsque je swipe entre chaques vues (exemple de la vue 1 à la vue 2 et que je revient que la vue 1), lorsque je clique sur un item de ma ListView , rien ne se passe la méthode onItemClick n'est pas appelée.
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
76
77
78
79
80
81
82 public class Fragment2 extends Fragment { private ListView actualListView; private String userPseudo; private String TAG = "Fragment2"; private ArrayList<String> list = new ArrayList<String>(); public static Fragment2 newInstance(String user) { Fragment2 fragment = new Fragment2 (); Bundle args = new Bundle(); args.putString("user", user); fragment.setArguments(args); return fragment; } /******************************************************/ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment2, container, false); actualListView = (ListView) rootView.findViewById(R.id.list); } /************************************************/ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Bundle args = getArguments(); if(args != null) { if (args.getString("user") != null && args.containsKey("user")) { userPseudo= args.getString("user"); } } if(adapter == null) { adapter = new UserAdapter(getActivity(),list); } actualListView.setAdapter(adapter); actualListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.i("setOnItemClickListener"); } }); populateListView(userPseudo); // Méthode qui met à jour la ListView } }
Merci d'avance pour votre aide.
Partager