我有一个"hello world" - 使用android-support-v4片段API的示例应用程序.该活动包含一个按钮,单击它将显示DialogFragment.但是,即使使用setRetainInstance(true),像旋转这样的配置更改也会导致对话框消失.
知道如何解决这个问题吗?
RetFragment.java
package me.local.HelloFroyo;
import android.os.Bundle;
import android.support.v4.app.*;
import android.util.Log;
import android.view.*;
public class RetFragment extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.hello_dialog_fragment, container);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.e("RET", "onDestroy");
}
}
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
package me.local.HelloFroyo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
public class MainActivity extends FragmentActivity {
private static final String TAG_DLG = "myFragDlg";
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);
}
public void onShowClick(View v) {
RetFragment ret = new RetFragment();
ret.show(getSupportFragmentManager(), TAG_DLG);
}
}
Run Code Online (Sandbox Code Playgroud)
Tom*_*ney 30
只是评论一下:
"即使使用了setRetainInstance(true)."
这不是"即使",也不是"因为它".如果setRetainInstance为false,则对话框旋转正常.
这是我在这里找到的工作,对我来说很好用:http: //code.google.com/p/android/issues/detail?id = 17423
@Override
public void onDestroyView()
{
Dialog dialog = getDialog();
// Work around bug: http://code.google.com/p/android/issues/detail?id=17423
if ((dialog != null) && getRetainInstance())
dialog.setDismissMessage(null);
super.onDestroyView();
}
Run Code Online (Sandbox Code Playgroud)
DialogFragments自行完成轮换更改,不需要setRetainInstance
但是,如果你设置它,这是一个可重现的错误与setRetainInstance(true)和DialogFragments
只是没有setRetainInstance,你的对话框将正常工作
但是,如果您在DialogFragment中运行AsyncTask并且想要保留它,则使用带有AsyncTaskLoader的LoaderManager ..它也可以在配置更改中幸存下来
| 归档时间: |
|
| 查看次数: |
11369 次 |
| 最近记录: |