Не удается разрешить метод getSupportFragmentManager ()

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

Вы расширяете android.app.Activity вместо android.support.v7.app.AppCompatActivity?

ariochdivij666 16.05.2018 21:59

покажи нам свой код

Davi 16.05.2018 22:04

Вам нужно расширить AppCompatActivity

EpicPandaForce 16.05.2018 22:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
3
3 343
3

Ответы 3

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 

Другие вопросы по теме