我是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);**
}
}
}
答案 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"
/>