Début des Activités de onItemClick de ListView dans les fragments
J'ai donc deux fragments de liaison à des fichiers de mise en page qui affiche ListViews. Les ListViews sont définis dans le fichier xml et avoir des entrées à partir d'un tableau de chaînes. Je veux cliquer sur des éléments dans la liste et ouvert à de nouvelles activités. Il y a 8 éléments dans une ListView et 9 dans l'autre. Dans le onItemClick code, comment puis-je créer les intentions de départ des activités basées sur l'élément cliqué? Je vais créer 1 classe par produit de sa propre activité. Comment puis-je commencer les activités dans les classes par les intentions de l'intérieur de la onItemClick méthodes de ce code?
class CommunityFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.community_fragment, container, false);
ListView lv = (ListView) view.findViewById(R.id.communityListView);
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
//TODO Auto-generated method stub
}
});
return view;
}
}
class ResourcesFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View view = inflater.inflate(R.layout.resources_fragment, container, false);
ListView lv = (ListView) view.findViewById(R.id.resourcesListView);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
//TODO Auto-generated method stub
}
});
return view;
}
}
- stackoverflow.com/questions/7177633/... voir ce..
InformationsquelleAutor apoorvkh | 2014-03-04
Vous devez vous connecter pour publier un commentaire.
Faire de l'instruction switch pour chacun de ces éléments et cliquez sur ouvrir en conséquence les activités ci-dessous:
lv.setOnItemClickListener(null);
lv.setOnItemClickListener( new OnItemClickListerner(){@Override onItemClick(...){...}});
Il ne peut pas travailler. J'ai bien les événements peuvent être enregistrés à l'Listener
.lv.setOnItemClickListener(null);
ses indiquant que vous n'avez pas inscrit votre listview à n'importe quel auditeur. Vous devez avoir à mettre en œuvre un auditeur première en conséquence, et puis vous pouvez l'appliquer à vue. Vous ne pouvez pas passer la valeur null.Mettre en œuvre votre
OnItemClickListener()
comme ci-dessoussur l'Élément, Cliquez sur, vous obtiendrez Position sur la base de la position, vous pouvez commencer fragment
une solution Générique peut être ..
Créer un tableau d'éléments qui retiennent le nom de classe de l'activité que vous souhaitez ouvrir ..
comme ..
//ajouter toutes les activités comme ça..............
maintenant sur ListView onItemCLick :
L'utiliser pour démarrer en regard de l'intention dans votre onItemClickListener:
Je pense que code suivant vous aider.
Si vous utilisez un adaptateur pour afficher les éléments dans une liste, il est important de différencier les suivantes:
L'ID de la liste
AdapterView#getId()
est différent de l'ID des items dans la listeArrayAdapter<String>#getId()
, parce que la vue de la liste contient les points de vue des éléments.Supposons qu'un exemple où vous vous apprêtez à lancer des activités avec les rôles d'utilisateur. Vous aurez à faire de la transformation de votre cas particulier.
Mieux 🙂