2017-09-01 3 views
1

J'ai créé une vue à onglets dans mon projet. il y a trois activités de fragmentsComment accéder aux boutons de l'activité de fragment dans une autre activité de fragment

  1. Home_fragment
  2. Category_fragment
  3. Favorite_fragment

J'appelle l'API YouTube Home_fragment qui affiche la liste de lecture YouTube.

Maintenant, je veux ajouter trois boutons dans mon Category_fragment. Quand je demande à la 1ère touche, qui va me montrer une autre liste de lecture de la vidéo dans Home_fragment comme bouton 2 et le bouton 3.

Comment puis-je créer une méthode pour le bouton dans Home_fragment qui peut appeler à partir Category_fragment?


Je l'ai fait code pour mon dernier projet dans lequel j'appelle les boutons d'un tiroir qui affiche la liste dans le MainActivity.

Comment faire la même chose comme ceci, mais mettre les boutons dans mon Category_fragment et les appeler en Home_fragment?

@Override 


public boolean onNavigationItemSelected(MenuItem item) { 


     getVideosPlaylist home = new getVideosPlaylist(); 
     int id = item.getItemId(); 
     menu_id = id; 

     if (id == R.id.nav_main) { 
      url = url_home; 
      main_toolbar =toolbar; 
      main_toolbar.setTitle(item.getTitle().toString()); 
      videos.clear(); 
      no_fav.setVisibility(View.GONE); 

      home.execute(); 
     }if (id == R.id.nav_catone) { 

      url = url_one; 
      catone = toolbar; 
      catone.setTitle(item.getTitle().toString()); 
      videos.clear(); 
      no_fav.setVisibility(View.GONE); 
      home.execute(); 


     } 

Répondre

0

Lorsque vous créez le fragment, vous pouvez définir une étiquette que vous pouvez utiliser pour trouver plus tard:

Fragment fragment = YOUR FRAGMENT HERE; 

getSupportFragmentManager().beginTransaction().add(R.id.main_content, fragment, "YOUR TAG HERE").commit(); 

Pour le trouver:

Fragment fragment = (YOUR FRAGMENT)getSupportFragmentManager().findFragmentByTag("YOUR TAG HERE"); 

Ensuite, vous accédez la méthode:

fragment.yourMethod(); 

Il est important de rendre votre méthode publique afin de pouvoir l'utiliser en dehors de la classe. De plus, si vous n'utilisez pas la compatibilité, vous pouvez utiliser getFragmentManager à la place.