0

J'essaye de créer une application qui a deux pages. La première page est une page à onglet et la deuxième page est une page de détail. Je crée une page avec this guide. J'ai une activité principale qui contient view pager et 3 onglets (Tab1, Tab2, Tab3). Tab3 contient un bouton pour naviguer dans la page de détails. Chaque onglet possède ses propres fichiers .java (extends Fragment) et .xml. Je modifier la mise en page fragmentThree.xml:Android - Appeler un fragment à l'intérieur de l'onglet

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/fragmentThree"]> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/goToDetail" 
    android:text="GO TO DETAIL" /> 

créer un nouveau fragment de page de détail. J'ai mis la méthode onclick à l'intérieur de Tab3.java;

goToDetail.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

      FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
      FragmentTransaction transaction = fragmentManager.beginTransaction(); 
      transaction.replace(R.id.mainActivity, new Detail()); 
      transaction.commit(); 
     } 
    }); 

Lorsque j'appuie sur le bouton, cela ne fait rien. Je ne remplace pas le fragment.

+0

Au clic du bouton, voulez-vous créer un nouvel onglet (un nouveau fragment dans votre cas) ou naviguer vers une nouvelle activité pour afficher les détails? –

+0

naviguez vers une nouvelle activité pour montrer les détails. –

+0

S'il vous plaît, fournissez toutes les informations afin de vous aider, utilisez-vous support Fragments ?, Si oui, vous devriez utiliser getSupportFragmentManager à la place. – miibpa

Répondre

0

utilisation mise en page de cadre dans l'activité principale

<FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/parent"> 

En clicklistiner: -

FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
      FragmentTransaction transaction = fragmentManager.beginTransaction(); 
      transaction.replace(R.id.parent, new Detail()); 
      transaction.commit(); 
0

Utilisez vous viewpager id au lieu de id principal de mise en page, où vous définissez le fragment de mise en page d'onglet.

transaction.replace(R.id.viewpager, new Detail());