2016-12-27 83 views
0

我在片段內工作,該片段有一個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 
    } 
}); 

什麼是從這個方法裏面打開新片段的最佳方式?

謝謝。

回答

1

添加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

我可能是錯的,但我認爲你想要做的事是不可能的,因爲片段不打算在已經打開的活動中打開...... 你可以做的是用片段準備活動,然後改變的時候,你要... 可能是錯誤的壽它的內容...

+0

您可以在一個活動開型動物片段...您可以通過XML或FrameLayout裏內添加片段。由於您使用了framelayout,因此您可以在同一個framelayout中替換或添加另一個片段。 – Fllo

1

裏面的onClick的ListView

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

謝謝,但有一個工作的答案 – user3713806

+0

@ user3713806沒有問題。將該答案標記爲正確,以便可以幫助其他人 –

1
 // 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

相關問題