如果你在Android开发中遇到了“无法从对话框目标获取保存的状态句柄”的问题,可以尝试以下解决方法:
private static final String DIALOG_TAG = "dialog";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 检查是否有保存的对话框状态
if (savedInstanceState != null) {
// 恢复对话框的状态
FragmentManager fm = getSupportFragmentManager();
MyDialogFragment dialogFragment = (MyDialogFragment) fm.findFragmentByTag(DIALOG_TAG);
if (dialogFragment != null) {
dialogFragment.setTargetFragment(this, 0);
}
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// 保存对话框的状态
FragmentManager fm = getSupportFragmentManager();
MyDialogFragment dialogFragment = (MyDialogFragment) fm.findFragmentByTag(DIALOG_TAG);
if (dialogFragment != null) {
dialogFragment.setTargetFragment(null, 0);
}
}
MyDialogFragment dialogFragment = new MyDialogFragment();
dialogFragment.setTargetFragment(this, 0);
dialogFragment.show(getSupportFragmentManager(), DIALOG_TAG);
使用上述解决方法,你应该能够正确地保存和恢复对话框的状态,并解决“无法从对话框目标获取保存的状态句柄”的问题。