Я обнаружил сообщение Не удается разрешить метод 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 () не найден. Спасибо.
покажи нам свой код
Вам нужно расширить AppCompatActivity




getSupportFragmentManager() - это метод на FragmentActivity. Вам нужно наследовать от него - прямо или косвенно (например, путем расширения AppCompatActivity).
В вашем случае, учитывая ваши зависимости, вы можете напрямую расширить FragmentActivity:
public class MainActivity extends FragmentActivity
getSupportFragmentManager() - это 1 метод от FragmentActivity
попробуй это
public class MainActivity extends FragmentActivity
Использование метода getSupportFragmentManager()
Обычно люди так делают, чтобы переключить фрагмент
узнать больше об активности фрагментов Вот Ссылка на сайт, чтобы узнать больше о 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 - это идентификатор из <frameLayout> в вашем XML-файле макета.
Пример:
<FrameLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:id = "@+id/frameLayout">
</FrameLayout>
Из Документация FragmentActivity можно узнать, что getSupportFragmentManager - это метод FragmentActivity. Обычно текущий проект Android использует библиотеку поддержки appcompat, в которой у вас есть AppCompatActivity. AppCompatActivity является производным от FragmentActivity. Итак, вы можете использовать либо FragmentActivity:
public class MainActivity extends FragmentActivity
или используя AppCompatActivity:
public class MainActivity extends AppCompatActivity
Вы расширяете android.app.Activity вместо android.support.v7.app.AppCompatActivity?