Ne pouvez pas obtenir un gridView sur l'élément, cliquez sur l'écouteur
Je ne peux pas obtenir setOnItemClickListener de gridView dans le Fragment. Quel peut être le problème?
Voici mon code::
public class MainMenuFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment
View view = inflater.inflate(R.layout.main_menu_fragment, container, false);
itemsGridViewObj = (GridView) view.findViewById(R.id.itemsGridView);
itemsGridViewObj.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
Log.d(TAG, "--> onItemClick listener..."); //Can not getting this method.
/*if(position == 1) {
FruitMenuFragment fruitMenuFragment = new FruitMenuFragment();
fragmentTransaction.replace(android.R.id.content, fruitMenuFragment);
fragmentTransaction.commit();
}*/
}
});
return view;
}
}`
Il est réellement personnalisé GridView ne contenant que des ButtonView. Je pense qu'il est à l'origine de problème pour obtenir onItemClickListener!
Pensez-vous qu'il y a un bouton dans chaque élément dans le contrôle GridView? I. e. dans la mise en page LisAdapter utilise.
oui. Dans ce cas, je ne suis pas arriver que onItemClickListener!
Je crois que le bouton est remplacer le OnItemClickListener. J'ai eu un problème similaire avec une case à cocher dans une liste. Dans la carte ajouter un nouveau OnClickListener le bouton en ligne et de voir si le OnItemClickListener vient à la vie.
J'ai une imageview et une case à cocher dans mon linéaires de mise en page que je suis le remplissage de la grille de point de vue avec. J'ai fait l'affichage de l'image et de la case à cocher non cliquable et ne peut recevoir le focus et le linéaire de la mise en page cliquable et peut recevoir le focus, mais je ne suis toujours pas recevoir cliquez sur événements.
Pensez-vous qu'il y a un bouton dans chaque élément dans le contrôle GridView? I. e. dans la mise en page LisAdapter utilise.
oui. Dans ce cas, je ne suis pas arriver que onItemClickListener!
Je crois que le bouton est remplacer le OnItemClickListener. J'ai eu un problème similaire avec une case à cocher dans une liste. Dans la carte ajouter un nouveau OnClickListener le bouton en ligne et de voir si le OnItemClickListener vient à la vie.
J'ai une imageview et une case à cocher dans mon linéaires de mise en page que je suis le remplissage de la grille de point de vue avec. J'ai fait l'affichage de l'image et de la case à cocher non cliquable et ne peut recevoir le focus et le linéaire de la mise en page cliquable et peut recevoir le focus, mais je ne suis toujours pas recevoir cliquez sur événements.
OriginalL'auteur MobiDev | 2012-04-12
Vous devez vous connecter pour publier un commentaire.
Vous devrez peut-être définir les éléments suivants dans votre ButtonView.
android:focusable="false"
android:focusableInTouchMode="false"
voir l'ajout de la Case à la ligne de liste perd mon onItemClick événements?
OriginalL'auteur esse
Lors de l'utilisation de Fragments de l'initialisation de l'affichage se produit en deux étapes.
La vue est seulement gonflé (et donc accessible) après la onCreateView méthode. Cette méthode est uniquement pour gonfler un point de vue et de le retourner dans le Fragment.
Donc, en toute logique à trouver des points de vue et mise en place onClickListeners devrait être fait dans la onActivityCreated() fonction que ce est le premier point à partir duquel vous pouvez accéder à la gonflés vue.
Ont un coup d'oeil à Google docs à http://developer.android.com/reference/android/app/Fragment.html#Lifecycle
Ci-dessous vous code ajustées pour se conformer à ce que j'ai décrit ci-dessus:
N'a pas de travail pour moi. Tout d'abord il n'existe pas de méthode
findViewById
dansFragment
et de fairegetView().findViewById
ne fonctionne pas non plus. Je ne sais pas comment cette réponse a obtenu 3 voix.OriginalL'auteur Richard Lewin