java - 无法从 Activity 中获取 getSupportFragmentManager,错误是 Activity 正在被销毁

标签 java android android-fragments

我的 fragment 类是

public class GetFragmentManager extends FragmentActivity {
    public FragmentManager getSupportFragmentMethod(){
        FragmentManager s = getSupportFragmentManager();
        return s;
    }
}

我需要 getSupportFragmentManager 方法(我可以从 FragmentActivity 类中获取)所以我创建了这个扩展 FragmentActivity 类的类。

我的 Activity 代码(扩展了 Activity 类)是

public void showFileChooser(View v){
    DialogFragment a =new FireMissilesDialogFragment();
    a.show(getSupportFragmentManager1(), "missiles");

}

private android.support.v4.app.FragmentManager getSupportFragmentManager1() {
     android.support.v4.app.FragmentManager ab = new GetFragmentManager().getSupportFragmentMethod();
    return ab;
}

出现的错误是Activity is being destroyed

谁能找到这里出了什么问题。我花了很多时间在这上面。谢谢大家的时间。

最佳答案

抱歉耽误了您的时间。
似乎 Activity 类有一个方法 getFragmentManager(),我当时知道,但没有正确运行,因为我在代码行中引用类(特别是 fragment 类)时出错。同样在每次导入 fragment 时,我导入的不是 app.v4 支持版本,而是主要版本。

主 Activity 类扩展了 Activity 类

public class Profile extends Activity implements View.OnTouchListener{

和写在同一个类上的open fragment方法

public void showFileChooser(View v){

    a =new FireMissilesDialogFragment();
    a.show(getFragmentManager(),"text");

}

FireMissilesDialogFragment 如下所示。

public class FireMissilesDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the Builder class for convenient dialog construction
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage("dialog_fire_missiles")
            .setPositiveButton("fire", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // FIRE ZE MISSILES!
                }
            })
            .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // User cancelled the dialog
                }
            });
    // Create the AlertDialog object and return it
    return builder.create();
}
}

改变的是,对于每个 app.v4 支持版本导入,我没有导入 v4 版本,而是导入常规版本。即使对话框有效, list 文件也会显示错误“java.lang.IllegalStateException:您需要在此 Activity 中使用 Theme.AppCompat 主题(或后代)”

无论如何,感谢大家的宝贵时间。我会对这两个答案投赞成票,因为它们对此时的到来很有用。

关于java - 无法从 Activity 中获取 getSupportFragmentManager,错误是 Activity 正在被销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38671881/

相关文章:

java - 随机播放方法会导致重复模式吗?

java - 是否可以在 jsp 中用 Java 编写 javascript

android - Gradle 同步失败 : Support for builds using Gradle versions older than 2. 6 已删除 [...]。您当前使用的是 Gradle 版本 2.2.1

android - Android- fragment 中的Firebase Analytics

java - 如何在不显式配置策略的情况下获取对 SessionAuthenticationStrategy 的引用?

android - Android App Bundle会导致崩溃,并且不尊重screenDensity吗?

Android 4.2 开发者设置仍然不可用

android - 共享元素转换在父 fragment 和子 fragment (嵌套 fragment )之间不起作用

当前选项卡位置的 Android Tablayout 显示下一个选项卡 toast 和日志

java - 跳过 Java KeyEvents