Java setFragment不能应用于其他片段

Java setFragment不能应用于其他片段,java,android,Java,Android,我正试图为我的Android应用程序填写fragmentreplacementivity.java,但我遇到了一些我感到困惑的错误 package com.example.soulforge; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentTransaction; import android.os.Bundle; import android.widget.Fram

我正试图为我的Android应用程序填写fragmentreplacementivity.java,但我遇到了一些我感到困惑的错误

package com.example.soulforge;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;

import android.os.Bundle;
import android.widget.FrameLayout;

import com.example.soulforge.fragments.CreateAccountFragment;
import com.example.soulforge.fragments.LoginFragment;

public class FragmentReplacerActivity extends AppCompatActivity {

    private FrameLayout frameLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fragment_replacer);

        frameLayout = findViewById(R.id.frameLayout);

        setFragment(new LoginFragment());

    }

    public void setFragment(Fragment fragment){

        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

        if(fragment instanceof CreateAccountFragment ){
            fragmentTransaction.addToBackStack(null);
        }

        fragmentTransaction.replace(frameLayout.getId(), fragment);
        fragmentTransaction.commit();
    }
}
为什么会出现此错误,如何修复


首先

检查LoginFragment类是否扩展了Fragment类

如果不是这样,

检查LoginFragment类是否扩展了正确的片段类,因为存在多个片段类

在您的情况下,检查您是否扩展

androidx.fragment.app.Fragment
而不是这个

android.app.Fragment


检查setFragment方法中的Fragment类是否与LoginOrganment扩展Fragment类的Fragment类相同,确保已在FragmentReplacerActivity类中导入“androidx.Fragment.app.Fragment”。并检查它是否在您的登录片段中正确导入

您可能在soulforge/app/build.Gradle文件中缺少androidx片段Gradle依赖项。可通过以下方式添加:

dependencies {
    def fragment_version = "1.2.5"

    // Java language implementation
    implementation "androidx.fragment:fragment:$fragment_version"
    // Kotlin
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
    ...
}

我的LoginFragment类像你说的那样扩展了Fragment,我也检查了instanceof,但我现在还没有看到问题,我已经编辑了我的答案,寻找另一个导致错误的原因。现在检查。我错过了进口是的,这就是问题所在。非常感谢!