创建和显示新的Activity,不能使用我的片段?

时间:2014-07-24 14:50:06

标签: java android android-activity android-fragments

我已经创建了一个新的activity,并且我使用intent显示了它。在onCreate我试图用我的班级替换占位符片段,但是它引发了错误 - 无法解决方法。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_viewer);
    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new ViewerEditFragment())
                .commit();
    }

ViewerEditFragment类:

public class ViewerEditFragment extends Fragment {

    public ViewerEditFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.edit_viewer, container, false);

        return rootView;
    }
}

activity_edit_viewer.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.lightfootsolutions.sfnviewer.app.EditViewerActivity"
    tools:ignore="MergeRootFrame" />

edit_viewer.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/edit_viewer"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView
        style="?android:attr/listSeparatorTextViewStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="sfn Credentials"/>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/username"
            android:paddingLeft="10dp" />
        <EditText
            android:id="@+id/username"
            android:hint="Admin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/password"
            android:paddingLeft="10dp" />
        <EditText
            android:id="@+id/entry"
            android:inputType="textPassword"
            android:hint="Password"
            android:minWidth="100dip"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>

    <TextView
        style="?android:attr/listSeparatorTextViewStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Host Settings"/>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/host_url"
            android:paddingLeft="10dp" />
        <EditText
            android:id="@+id/hostUrl"
            android:hint="http://www.mysfn.com"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/web_app"
            android:paddingLeft="10dp" />
        <EditText
            android:id="@+id/webApp"
            android:hint="sfn"
            android:minWidth="100dip"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/model_id"
            android:paddingLeft="10dp" />
        <EditText
            android:id="@+id/modelId"
            android:hint="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/properties"
            android:paddingLeft="10dp" />
        <EditText
            android:id="@+id/properties"
            android:hint="dv=icon"
            android:minWidth="100dip"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>

    <Button android:id="@+id/close"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="Save" />
</LinearLayout>

1 个答案:

答案 0 :(得分:2)

由于您正在为片段扩展android.support.v4.app.Fragment,因此您需要使用getSupportFragmentManager()而不是getFragmentManager()。在这种情况下,请务必extend FragmentActivity