Java setFragment不能应用于其他片段
我正试图为我的Android应用程序填写fragmentreplacementivity.java,但我遇到了一些我感到困惑的错误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
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,但我现在还没有看到问题,我已经编辑了我的答案,寻找另一个导致错误的原因。现在检查。我错过了进口是的,这就是问题所在。非常感谢!