我有一個主要活動(活動1),它膨脹了一個導航抽屜(與列表視圖列表項目)。抽屜由一個片段(MenuFragment)運行,這樣我就可以根據選擇哪個項目來膨脹任何xml佈局。現在我的問題是如何在用戶從抽屜中選擇一個項目時運行另一個活動(活動2),因爲抽屜由MenuFragment運行,我可以從片段開始活動。任何幫助真的很感激。提前致謝。如何運行從另一個片段的片段
0
A
回答
0
這種類型的問題的一種常見模式是爲每個片段提供一個偵聽器接口,其中當發生片段內的某些事情時需要通知Activity。
所以,你的菜單片段可能看起來是這樣的:
public class MenuFragment extends Fragment
{
public interface Listener
{
void onDrawerItemSelected();
}
private Listener listener;
public void setListener(Listener listener)
{
this.listener = listener;
}
// When drawer item selected, do something like
//
// if (listener != null)
// {
// listener.onDrawerItemSelected();
// }
}
您的活動會看起來像:
public class TestActivity extends Activity implements MenuFragment.Listener
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// MenuFragment fragment = ...;
// fragment.setListener(this);
}
@Override
public void onDestroy()
{
// MenuFragment fragment = ...;
// fragment.setListener(null);
super.onDestroy();
}
@Override
public void onDrawerItemSelected()
{
// TODO launch other activity here
}
}
從本質上說,讓你的活動帶動展會。
0
使用接口
Communicating between a fragment and an activity - best practices.
您需要從片段創建到活動的接口。喜歡的東西:
public class MainActivity extends FragmentActivity implements MainFragment.getCommunication {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//called from the MainFragment
@Override
public void TalkToMe() {
MainFragment MainFrag = (MainFragment)getFragmentManager().findFragmentById(R.id.fragment_main);
MainFrag.MyMainFragmentMethod();
OtherFragment OtherFrag = (OtherFragment)getFragmentManager().findFragmentById(R.id.fragment_Other);
OtherFrag.MyMainFragmentMethod();
}
}
片段類
public class MainFragment extends Fragment {
//interface to the MainActivity activity class
private getFragmentCommunication listener;
public interface getCommunication {
public void TalkToMe();
}
}
這裏是一個很好的文章:http://www.vogella.com/articles/AndroidFragments/article.html。
1
你不應該從另一個片段調用片段。 Communication between fragments應該通過活動。
看看這個其他的SO thread。希望這可以幫助。
相關問題
- 1. 如何從Android的另一個片段調用一個片段?
- 2. 從另一個片段調用片段
- 3. 從另一個片段打開片段
- 4. 從片段到另一個片段
- 5. 如何從另一個片段更新片段的ListView?
- 6. Android - 從一個片段添加日期到另一個運行片段
- 7. ViewPager中另一個片段的片段
- 8. 如何從片段開始另一個片段
- 9. 如何實現意圖從另一個片段調用片段
- 10. 如何從片段移動到另一個片段
- 11. Android - 如何將一個片段放在另一個片段上
- 12. 去另一個片段,而在片段
- 13. 打開片段在另一個片段
- 14. 另一個片段
- 15. 從一個片段發送值到另一個片段
- 16. 將數據從一個片段發送到另一個片段
- 17. 從片段切換到另一個片段如果片段尚未打開
- 18. 如何從另一片段的onTouch()內部替換片段?
- 19. FragmentTabHost將片段從片段傳遞到另一片段
- 20. 如何從一個片段發送數據到另一個片段中的Android?
- 21. 如何從另一個片段內的RecyclerView適配器啓動一個片段?
- 22. 如何從一個片段通過選擇的圖像到另一個片段
- 23. 我如何打開另一個片段的新片段
- 24. 更換片段與另一片段顯示兩個片段
- 25. 如何將數據從一個片段傳輸到另一個片段android
- 26. 如何將值從一個片段傳遞到另一個片段
- 27. 如何將JSONArray從一個片段傳遞到另一個片段
- 28. 如何將值從一個片段轉移到另一個片段
- 29. 如何從一個片段獲取包數據到另一個片段?
- 30. 將另一個片段放入另一個片段