我是Android開發的初學者。我正在創建一個小應用程序,我從單個活動中調用兩個片段。 活動 - >片段1->片段2.活動到片段1,片段1到片段2片段2到活動
活動到片段1,片段1到片段2. 我想知道如何直接將片段2直接調用到活動。
我在Fragment 2中給出按鈕,點擊那個按鈕我想要進入Activity。
我是Android開發的初學者。我正在創建一個小應用程序,我從單個活動中調用兩個片段。 活動 - >片段1->片段2.活動到片段1,片段1到片段2片段2到活動
活動到片段1,片段1到片段2. 我想知道如何直接將片段2直接調用到活動。
我在Fragment 2中給出按鈕,點擊那個按鈕我想要進入Activity。
活動已存在。你的活動是主持片段的活動,即假設所有片段都是全屏片段,當你調用片段1時,你的活動會刪除當前片段(如果有的話)並用片段1替換它,當你調用片段2時,片段1被片段2替換,等等。
如果你想看到的只是活動(在大多數情況下將只是一個白色的屏幕)的佈局,你必須刪除所有碎片,要做到這一點,它添加到您的按鈕的onClick:
getActivity().getFragmentManager().popBackStack(1, FragmentManager.POP_BACK_STACK_INCLUSIVE);
由你的問題,我注意到你仍然需要閱讀有關片段。 你不能去一個片段的活動,因爲片段
是一個活動的一部分,它有自己的生命週期,接收自己的輸入事件,你可以在活動運行時添加或刪除它們(排序就像您可以在不同活動中重複使用的「子活動」一樣)。
雖然您可以替換一個片段並在同一活動上使用不同的片段。 你可以這樣做是這樣的:
首先在主XML使用佈局,你會膨脹:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/frgContainer"
android:layout_margin="20dp"
android:background="#00e6ff">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn"
android:text="btn"
/>
</LinearLayout>
創建2個新的活動,這將是我們的片段帶有xml文件,您可以添加任何您想要的內容:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.hackeru.mydynamicfragment.Login">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="User Name"
android:id="@+id/txtLoginUser"
android:layout_marginLeft="20sp"
android:layout_marginRight="20sp"
android:layout_marginTop="80dp"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:id="@+id/txtLoginPass"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnLogin"
android:text="Login"
/>
</LinearLayout>
覆蓋的onCreate的片段方法在主OnClick方法
public class Login extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_login,container,false);
}
4.使用fragmentTransaction更換或片段添加當前佈局創建:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fragmentManager =getFragmentManager();
// we must handle the callback fragment process
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
Login loginFragment = new Login();
fragmentTransaction.add(R.id.frgContainer,loginFragment);
// fragmentTransaction.replace if there is another fragment you
// wish to replace
fragmentTransaction.commit();
}
閱讀此:
我知道這個....... –
不要在片段中做片段事務,你應該編寫一個接口並在你的活動中實現它,並在那裏做你的片段事務。 –