所以我基本上有一個'DemosFragment'按鈕,當我點擊它,我想它打開另一個片段(SettingsFragment),我現在明白我需要一個活動要解決這個問題,因爲按鈕目前有一個使用intent/startActivity的onClick方法,那麼我將如何去創建一個只包含我的片段的活動?我知道這可能聽起來很奇怪,我寫了它,我剛開始Android開發,但基本上我有一個片段,因爲我想要一個片段有一個按鈕來打開另一個片段,我想我需要一個活動的片段我是試圖打開,那麼我該如何創建這個活動,以及我需要放置哪些內容?謝謝。試圖創建一個按鈕來打開一個片段(安卓)
回答
你需要用下面的代碼的活動:
public class ShowFragmentActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_fragment);
}
}
你也有你的資源來創建一個名爲activity_show_fragment.xml佈局xml文件/文件夾佈局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment class="com.example.yourFragmentsClassName"
android:id="@+id/fragment_id"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
這應該工作只顯示你的片段。 要啓動活動,在按鈕的onClick方法粘貼此代碼:
Intent i = new Intent(this, ShowFragmentActivity.class);
startActivity(i);
它總是一個很好的決定來看看官方的文檔:http://developer.android.com/reference/android/app/Fragment.html。 希望有所幫助!
謝謝你,對你的代碼進行了一些調整,我得到它的工作,除了現在我切換到片段時,我的頂部標籤沒有顯示,有沒有辦法讓標籤仍然出現? – 2014-09-19 16:35:49
哇!你的問題需要很長的回答,但是一個很好的做法(也是瘋狂的)Fragments不能相互通信,但它們可以由一個Activity來主持;在這種情況下,Activity可以管理它們之間的通信流(碎片),並可以通過Bundle,Intent和Handler等幾種方式進行開發。看看這裏的ufficial Android文檔:
http://developer.android.com/training/basics/fragments/index.html
構建一個靈活的用戶界面的android docs部分是如何啓動/從Activity
加載Fragment
一個很好的例子。在該示例中,您將看到Activity
XML中的FrameLayout
用於片段容器。這將是顯示所有片段的View
。
當您使用FragmentTransaction
載入片段時,片段佈局的內容將顯示在容器視圖中。在上面引用的例子中,這與Android支持庫中包含的類SupportFragmentManager
一起發生,用於促進早期版本操作系統中的片段事務。 SupportFramgnetManager要求您擴展FramentActivity
而不僅僅是Activity
。如果您不擔心向後兼容性,並且正在擴展活動,而不是片段活動,則可以簡單地使用getFragmentManager()。
getFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();
在初始添加事務後,您可以使用片段事務的替換方法在片段之間切換。替換正是它聽起來像,它換一個片段換另一個。要在第一次使用內完成此操作,請使用
SecondFragment secondFragment = new SecondFragment();
getActivity().getFragmentManager().beginTransaction()
.replace(R.id.fragment_container, secondFragment).commit();
請注意,從片段內使用getActivity()。這允許您引用主機活動的上下文以訪問片段管理器。當你在活動中時,你不需要使用getactivity,因爲片段管理器已經可以從該上下文訪問。
- 1. 按鈕打開一個片段
- 2. 一個按鈕來打開一個URL
- 3. 試圖改造一個按鈕,打開一個模式窗口
- 4. 從另一個片段打開片段
- 5. 打開片段在另一個片段
- 6. 創建一個按鈕,創建按鈕
- 7. 學習js/jquery試圖創建一個開始按鈕
- 8. 只需按一個按鈕即可展開地圖片段
- 9. 如何建立一個地圖切換按鈕在安卓
- 10. 創建一個圖像按鈕,打開一個新的活動onclick粉碎
- 11. 從同一個按鈕打開和關閉片段?
- 12. 使用片段按鈕打開另一個活動
- 13. 如何點擊按鈕打開一個片段?
- 14. 按鈕都從一個Android片段打開相同的活動
- 15. 安卓:如何點擊一個按鈕
- 16. 創建一個字段和按鈕
- 17. 從另一個片段中的按鈕開始片段
- 18. 試圖獲得一個按鈕來取消隱藏圖片
- 19. 安卓 - 按鈕不會切換片段
- 20. 一個片段到另一個片段的按鈕單擊
- 21. 試圖建立一個片段類
- 22. 創建一個圖像按鈕,創建一個聲音的HTML
- 23. 片段沒有創建一個視圖
- 24. 安卓與兩個片段
- 25. 安卓菜單,打開一個網頁視圖或幻燈片圖像
- 26. 試圖爲每個對象實例創建一個按鈕
- 27. 調用另一個類的按鈕或文本字段安卓
- 28. 我想創建一個頁面,我有一個按鈕和按鈕點擊打開其他按鈕
- 29. 創建一個安卓商店
- 30. 安卓:創建一個ListView適配器
您是否已經將此片段加載到某個活動中,或者您是否只編碼了一個片段,並且需要知道如何顯示該片段以及切換到下一個片段。 – Rarw 2014-09-19 16:13:53