从另一个片段内部打开片段

问题描述:

我在片段内工作,该片段有一个ListView。当用户点击一个列表行时,我想打开另一个应该显示另一个ListView的片段。从另一个片段内部打开片段

这是我目前拥有的方法:

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     String topic = String.valueOf(parent.getItemAtPosition(position)); 

     Log.d("Comunidad",topic); 
     //PASA VALOR SELECCIONADO AL SIGUIENTE FRAGMENT 
    } 
}); 

什么是从这个方法里面打开新片段的最佳方式?

谢谢。

添加FrameLayout到您的首选活动的布局调用FragmentA(片段被打开onClick):

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

,然后做这个替换为您FragmentA outer_frame(FrameLayout里):

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String topic = String.valueOf(parent.getItemAtPosition(position)); 

      Log.d("Comunidad",topic); 
      getSupportFragmentManager().beginTransaction() 
       .replace(R.id.outer_frame, new FragmentA()) 
       .commit(); 

     } 
    }); 
+0

谢谢,完美作品 – user3713806

我可能是错的,但我认为你想要做的事是不可能的,因为片段不打算在已经打开的活动中打开...... 你可以做的是用片段准备活动,然后改变的时候,你要... 可能是错误的寿它的内容...

+0

您可以在一个活动开型动物片段...您可以通过XML或FrameLayout里内添加片段。由于您使用了framelayout,因此您可以在同一个framelayout中替换或添加另一个片段。 – Fllo

里面的onClick的ListView

Fragment2 new_frag = new Fragment2(); 
return new_frag; 
+0

谢谢,但有一个工作的答案 – user3713806

+0

@ user3713806没有问题。将该答案标记为正确,以便可以帮助其他人 –

 // Inside your onClick method 
     FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(R.id.container, new MyFragment()); 
     fragmentTransaction.addToBackStack(null); 
     fragmentTransaction.commit(); 
+0

谢谢,但有一个工作答案 – user3713806