我的 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/