Java 是什么导致Android Studio将FragmentManager标记为已弃用?

Java 是什么导致Android Studio将FragmentManager标记为已弃用?,java,android,android-fragments,deprecated,Java,Android,Android Fragments,Deprecated,我正在学习Udacity nanodegree的Android基础课程。我在导游应用程序项目中,该项目需要一个ViewPager、一个TabLayout和片段 当我学习各种教程和示例时,我创建了一个TestAdapter.java类。首先是: package com.example.android.tourguide001; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPa

我正在学习Udacity nanodegree的Android基础课程。我在导游应用程序项目中,该项目需要一个ViewPager、一个TabLayout和片段

当我学习各种教程和示例时,我创建了一个TestAdapter.java类。首先是:

package com.example.android.tourguide001;

import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

public class TestAdapter extends FragmentPagerAdapter {
    public TestAdapter(FragmentManager fm) {
        super(fm);
    }
}
行“super(fm);”有一行通过“super”,悬停文本表示片段管理器已被弃用

我试过各种进口货。我尝试过不同的构造函数。我一直陷入僵局,很明显,我对片段和片段管理器的工作方式有一个根本性的误解

我去了YouTube,找到一个学生,他制作了一个实用的导游应用程序,并得到了一份代码副本供我学习。在他的适配器类中,他拥有与我相同的导入,他拥有与我基本相同的代码,但他的片段管理器并没有遭到反对

在本例中,他的代码是:

package com.example.tourguideapp;

import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

public class ViewAdapterPage extends FragmentPagerAdapter {

    public ViewAdapterPage(FragmentManager fm)
    {
        super(fm);
    }
}
我不知道他的应用程序和我的有什么区别。有人能解释一下弃用错误是如何工作的吗?在这种情况下会发生什么

编辑:谢谢你的帮助!答案是

…在应用程序中生成渐变依赖项!把我的复制到他的会破坏他的,把他的复制到我的会修复我的。所以现在我开始更多地研究依赖关系


有了线索感觉好多了

作为FragmentPagerAdapter构造函数的第二个参数,您必须显式地传递行为类型。 使用
super(fm、行为\u恢复\u仅\u当前\u片段)

注意:看一看JavaDocs中关于行为的内容

指示只有当前片段将位于{@link中 生命周期状态#已恢复} *国家。所有其他片段都限制在{@link Lifecycle.State#STARTED}


我猜您的目标是不同的SDK版本,而不是您复制的代码的作者。你可以在app/build.gradle
targetSdkVersion
中找到它们,是什么原因导致Android Studio将FragmentManager标记为已弃用?
嗯,事实是它已弃用:)这不是你提到的错误,而是一个警告,你不应该再使用此类,请看@Gralls我发现了该部分,有一点不同:他的版本是15,我的版本是22。仅仅改变那个数字和同步并没有对我不推荐的行产生影响,所以我认为这不仅仅是翻几个数字。@a_local_nobody你的幽默感和我的没有太大区别,我明白了。;-)如果这不是一个错误。。。我是否能够继续按原样构建应用程序,然后成功运行它?我想说的是,你必须检查你正在使用的androidx库的版本以及视频的作者+检查视频拍摄的时间。谷歌不久前就不推荐它了。我在另一个例子中找到了这段代码,当我在我的应用程序中使用它时,错误消失了。不过,我的根本问题仍然存在:我不知道为什么两个看起来相同的应用程序会有不同的结果。一定是这样的,我不知道我在看什么,这就是我试图理解的。