IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

ViewPager et ListViews


Sujet :

Composants graphiques Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut ViewPager et ListViews
    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)

    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 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
    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);
        }
     
    }
    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
    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
     
     	}
     
    }
    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.

    Merci d'avance pour votre aide.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai lu qu'il pourrait s'agir d'un problème de focus. Le ViewPager parent prendrait-il le focus sur ma ListView ?

Discussions similaires

  1. Ajouter une listView au viewPager
    Par BIAtos dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 27/03/2015, 17h24
  2. problem passage de cursor position depuis une ListView a viewpager
    Par andronull dans le forum Composants graphiques
    Réponses: 10
    Dernier message: 04/03/2014, 20h37
  3. listview ??
    Par Galdarion dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/09/2002, 17h02
  4. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49
  5. ListView
    Par SnickeursMan dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/08/2002, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo