如何在片段活动中使用片段

时间:2014-04-01 18:39:53

标签: android

我是android开发的新手。我已经创建了一个片段Activity和一个片段(通过MainFragment的名称),当我向活动添加一个MainFragment类的实例时,它开始显示下面添加的突出显示行上的错误。任何人都可以帮忙。谢谢!

MainActivity.java

package com.vitarkasolutions.fb_smsandcallreader;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity {
    private MainFragment mainFragment;
    private static final String TAG = "MainFragment";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (savedInstanceState == null) {

            mainFragment = new MainFragment();
            getSupportFragmentManager()
            .beginTransaction()
            **.add(android.R.id.content, mainFragment)**
            .commit();
        } else {

            **mainFragment = (MainFragment) getSupportFragmentManager().findFragmentById(android.R.id.content);**
        }
    }

}

1 个答案:

答案 0 :(得分:0)

您需要更改此

import android.app.Fragment;

import android.support.v4.app.Fragment;

由于您扩展FragmentActivity,请确保MainFragment的导入来自支持库。

您正在将Fragment添加到ViewGroup,例如FrameLayout。

add(android.R.id.content, mainFragment)

android.R.id.content是容器的ID。

http://developer.android.com/reference/android/R.id.html#content

我在Android框架中使用的标识

public static final int content

Added in API level 1
Constant Value: 16908290 (0x01020002)

你不需要这个

 mainFragment = (MainFragment) getSupportFragmentManager().findFragmentById(android.R.id.content);

通常,我们的xml中会添加/重新生成片段<{1}}

示例:

ViewGroup

然后

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container" // i defined own id
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.test.MainActivity"
    />