Problème avec ViewPager et findViewById
Salut,
J'ai un petit problème dans mon application. J'utilise un ViewPager pour pour "switcher" facilement entre deux pages. Chaque page est composé de layouts sur lesquels je veux placer un onclicklistener.
Voici mon code:
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
| // Création de la liste de Fragments que fera défiler le PagerAdapter
List fragments = new Vector();
// Ajout des Fragments dans la liste
fragments.add(Fragment.instantiate(this,Proprietes1.class.getName()));
fragments.add(Fragment.instantiate(this,Proprietes2.class.getName()));
// Création de l'adapter qui s'occupera de l'affichage de la liste de
// Fragments
mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
// Affectation de l'adapter au ViewPager
pager.setAdapter(this.mPagerAdapter);
pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
switch(position){
case 0:
technologie=(LinearLayout)findViewById(R.id.technologie);
technologie.setOnClickListener(this);
break;
case 1:
break;
}
}
}); |
Donc si je fais ça , l'écoute du clic sur mon LinearLayout dans la page 1 n'est pas actif quand j'arrive sur mon activité. Elle l'est seulement quand je vais sur la page 2 et que je reviens sur la page 1 ce qui est logique puisque je déclare l'écoute dans l'évenement onpagechange.
Mon problème , c'est que si je déclare ces deux lignes :
Code:
1 2
| technologie=(LinearLayout)findViewById(R.id.technologie);
technologie.setOnClickListener(this); |
... en dehors de l'évenement onPageChange , j'ai une erreur de type NullPointerException sur la deuxième ligne et mon application plante dés que j'arrive sur l'activité concernée.
Vous pouvez m'aider ?