J'ai une méthode comme celle-ci, dans une classe commune afin de créer des vues où je veux.Comment définir OnClickListener dans une vue
Les vues sont en cours de création correctement mais je dois également ajouter un écouteur lorsque cette disposition est cliquée.
public class ArticleViews {
public LinearLayout getTinyView(final Context cont){
//Main layout
LinearLayout x = new LinearLayout(cont);
....
Ma tentative:
x.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ArticleTools.selectedArticle = art;
Fragment art = new ArticleDetailsFragment();
FragmentManager fragmentManager = ¿?¿?¿?getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.include_main, art);
fragmentTransaction.commit();
}
});
Mais il est imposible pour obtenir getSupportFragmentManager(); parce que cette classe n'est pas une activité ou un fragment (et il ne doit pas être un)
Alors, ma question est, comment puis-je faire cela?
J'ai également écrit le code dans l'une de ces parties du code dans lequel j'appelle la classe ArticleView ... Ceci est un fragment, donc à mon avis, le code devrait fonctionner.
while(it2.hasNext()){
DataSnapshot ds = it2.next();
Articulo a = ds.getValue(Articulo.class);
a.setUserId(usuerId);
ArticleViews av = new ArticleViews(a);
av.getTinyView(getContext()).
setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setClickListenerToView();
}
});
articles.add(av);
}
Et articles est ..
final ArrayList<ArticleViews> articles = new ArrayList<>();
Mais l'application ne pénètre pas dans le code
public void setClickListenerToView(){
Log.i("OnClick", "enter");
Fragment art = new ArticleDetailsFragment();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.include_main, art);
fragmentTransaction.commit();
}
Merci pour l'aide
Lorsque je délègue le code dans le fragment (dans la boucle while), onClickListener ne fonctionne pas – aserrin55
J'ai effectué quelques modifications dans l'OP. Je comprends votre réponse mais dans le fragment le code ne fonctionne pas. Le fichier Log.i n'est pas en cours d'exécution, par exemple. – aserrin55
Quelque chose s'il vous plaît? – aserrin55