我真的沒想到一個好問題的標題。對於那個很抱歉。FragmentActivity和Fragment ...我如何在這種情況下工作?
這裏是我的問題: 我有我的主要活動:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Support.V4.App;
namespace AndroidApplication2
{
[Activity(Label = "AndroidApplication2", MainLauncher = true, Icon = "@drawable/icon")]
public class Activity1 : FragmentActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
//Not sure if I need the code below
FragmentTransaction ft = this.SupportFragmentManager.BeginTransaction();
Activity2 fragment = new Activity2();
ft.Add(Resource.Id.fragmentContainer, fragment);
ft.Commit();
}
}
}
爲主要活動的XML文件看起來像:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment
class="AndroidApplication2.Activity2"
android:id="@+id/fragmentContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/changeFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change Fragment" />
</LinearLayout>
現在,活性2看起來是這樣的:
namespace AndroidApplication2
{
[Activity(Label = "My Activity")]
public class Activity2 : Fragment
{
public override View OnCreateView(LayoutInflater p0, ViewGroup p1, Bundle p2)
{
return p0.Inflate(Resource.Layout.fragment_layout, p1, false);
}
}
}
和fragment_layout.axml看起來像這樣:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a TextView from the fragment" />
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a Button from the fragment" />
</LinearLayout>
此代碼是在C#中使用Xamarin。
現在,我想要做的就是訪問fragment_layout中的按鈕並使用它來替換Activity1中的片段(我的主要活動)。我正在使用它來避免爲每個簡單的事情創建新的活動,例如顯示某些細節,但我也不能使用任何彈出窗口。
我無法訪問我在我的主FragmentActivity中加載的片段上的按鈕,我可以用它替換另一個片段。幫幫我!謝謝!任何其他改進或建議也是受歡迎的。
好的,我的一個問題就解決了。如果靜態添加,我無法替換片段。但我仍然不知道如何訪問我添加的新片段的按鈕。請幫助我。謝謝! –