我正在嘗試創建一個將動態加載不同碎片的活動。 這是我的主要活動是如何模樣動態碎片中的運行時異常
import android.os.Bundle;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
public class User_details extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment_loader);
Fragment fragment=new mail_fragment();
FragmentTransaction fragmentTransaction =
getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.fragment_place, fragment);
fragmentTransaction.commit();
}
在運行時,我收到以下錯誤。請檢查錯誤here
片段這個樣子的
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class mail_fragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_mail, container, false);
}}
主要活動(User_details)的XML文件是Activity_Fragment_loader
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ask me Later"
android:id="@+id/but_skip"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
<fragment
android:id="@+id/fragment_place"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/but_skip"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
mail_fragment活動的XML文件是
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Enter your E-mail ID"
android:id="@+id/mail"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="119dp"
android:textColor="#000000"
android:layout_gravity="center_horizontal|top" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:ems="10"
android:id="@+id/editText"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_gravity="center" />
</FrameLayout>
我已經提到了類似的問題。他們大多數建議我在提交fragmenttracsaction後將setContentView()放置在User_details活動中。我試過,但我仍然得到相同的錯誤。
我還想補充一點,我靜態地將片段嵌入到XML文件中,並且工作完美。現在,當我這樣務實地向我拋出這個錯誤。
任何幫助將不勝感激
正如我在我的問題的最後幾行所說的,我已經嘗試靜態添加一個片段,將它包含在XML文件中,就像您建議的那樣。當我嘗試加載另一個片段時,它只是位於它的頂部而不是替換它(我使用了fragmenttransaction.replace())。我無法理解viewGroup ID的含義。你能給我一個例子 –
在你的情況下,你必須分配一個ID給相關佈局,並在FragmentTransaction.add()方法中使用這個ID。這會將碎片添加到相對佈局,這正是您的願望。你在做什麼是嘗試並添加一個片段到另一個片段。 –