我发现消息无法解析方法' getSupportFragmentManager()'我想在活动中添加一个片段
这是我的代码
package com.formation.testfragment;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.*;
import android.support.v4.app.FragmentTransaction;
import android.os.Bundle;
public class MainActivity extends Activity {
private FragmentManager fragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentManager = getSupportFragmentManager();
}
}
这是我的build.gradle
申请插件:' com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.formation.testfragment"
minSdkVersion 17
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
repositories {
mavenCentral()
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
compile 'com.android.support:support-v4:27.1.1'
}
但找不到方法getSupportFragmentManager()。 谢谢。
答案 0 :(得分:2)
getSupportFragmentManager()
是FragmentActivity
上的一种方法。您需要直接或间接地继承它(例如,通过扩展AppCompatActivity
)。
在您的情况下,根据您的依赖关系,您可以直接扩展FragmentActivity
:
public class MainActivity extends FragmentActivity
答案 1 :(得分:2)
您可以从FragmentActivity documentation找到getSupportFragmentManager
是FragmentActivity的方法。通常,当前的Android项目使用支持appcompat库,您可以在其中使用AppCompatActivity。 AppCompatActivity源自FragmentActivity。因此,您可以使用FragmentActivity:
public class MainActivity extends FragmentActivity
或使用AppCompatActivity:
public class MainActivity extends AppCompatActivity
答案 2 :(得分:1)
getSupportFragmentManager()
是FragmentActivity
试试这个
public class MainActivity extends FragmentActivity
使用方法getSupportFragmentManager()
通常人们会这样做,切换片段
read more about fragment activity以下是链接,详细了解fragment
// Begin the transaction
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// Replace the contents of the container with the new fragment
ft.replace(R.id.your_placeholder, new FooFragment());
// or ft.add(R.id.your_placeholder, new FooFragment());
// Complete the changes added above
ft.commit();
R.id.frameLayout 是您的Layout xml文件中来自<frameLayout>
的ID。
示例:的
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frameLayout">
</FrameLayout>