Не удается разрешить метод getSupportFragmentManager () - PullRequest
0 голосов
/ 16 мая 2018

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

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

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>
0 голосов
/ 18 мая 2018

Из документации FragmentActivity можно узнать, что getSupportFragmentManager является методом FragmentActivity.Обычно в текущем проекте Android используется библиотека поддержки appcompat, в которой есть AppCompatActivity.AppCompatActivity является производным от FragmentActivity.Таким образом, вы можете использовать FragmentActivity:

public class MainActivity extends FragmentActivity

или AppCompatActivity:

public class MainActivity extends AppCompatActivity 
0 голосов
/ 16 мая 2018

getSupportFragmentManager() - это метод для FragmentActivity. Вам нужно наследовать от него & mdash; прямо или косвенно (например, путем расширения AppCompatActivity).

В вашем случае, учитывая ваши зависимости, вы можете напрямую расширить FragmentActivity:

public class MainActivity extends FragmentActivity
...