0

所以我基本上有一個'DemosFragment'按鈕,當我點擊它,我想它打開另一個片段(SettingsFragment),我現在明白我需要一個活動要解決這個問題,因爲按鈕目前有一個使用intent/startActivity的onClick方法,那麼我將如何去創建一個只包含我的片段的活動?我知道這可能聽起來很奇怪,我寫了它,我剛開始Android開發,但基本上我有一個片段,因爲我想要一個片段有一個按鈕來打開另一個片段,我想我需要一個活動的片段我是試圖打開,那麼我該如何創建這個活動,以及我需要放置哪些內容?謝謝。試圖創建一個按鈕來打開一個片段(安卓)

+0

您是否已經將此片段加載到某個活動中,或者您是否只編碼了一個片段,並且需要知道如何顯示該片段以及切換到下一個片段。 – Rarw 2014-09-19 16:13:53

回答

0

你需要用下面的代碼的活動:

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。 希望有所幫助!

+1

謝謝你,對你的代碼進行了一些調整,我得到它的工作,除了現在我切換到片段時,我的頂部標籤沒有顯示,有沒有辦法讓標籤仍然出現? – 2014-09-19 16:35:49

0

哇!你的問題需要很長的回答,但是一個很好的做法(也是瘋狂的)Fragments不能相互通信,但它們可以由一個Activity來主持;在這種情況下,Activity可以管理它們之間的通信流(碎片),並可以通過Bundle,Intent和Handler等幾種方式進行開發。看看這裏的ufficial Android文檔:

http://developer.android.com/training/basics/fragments/index.html

0

構建一個靈活的用戶界面的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,因爲片段管理器已經可以從該上下文訪問。