gpt4 book ai didi

Android - 关闭 DialogFragment 时刷新 "parent" fragment

转载 作者:太空宇宙 更新时间:2023-11-03 11:38:17 25 4
gpt4 key购买 nike

我正在使用 Tabhost 和 Fragments 构建一个带有选项卡式布局的 Android 应用程序。

在其中一个选项卡( fragment )中,我有一个显示字符串变量值的 TextView 。此选项卡还有一个调用 DialogFragment 的按钮,我可以在其中通过 EditText 框编辑所述字符串的值。

除一个故障外,一切都按预期工作:一旦关闭 DialogFragment 并且选项卡再次获得焦点,textview 文本不会自动刷新。为了让它刷新,我需要更改选项卡并返回。

是否有我可以添加的说明,以便在关闭 DialogFragment 时重新加载/刷新其父 Activity ?

提前致谢。

编辑:仍在寻找解决方案,无法弄清楚如何使用 DialogFragment.isdetached

最佳答案

要设置关键字,可以通过处理程序机制完成。

我有过类似的情况,显示显示 fragment 中的 DialogFragment,其中 DialogFragment 应该向 fragment 报告它的关闭。

在您的情况下,您似乎使用的是 (Fragment)Activity 而不是 Fragment,但我认为这没有区别。

步骤

  1. 在您的 Activity 中创建一个扩展 Handler 的私有(private)类。覆盖 onHandleMessage(),并在那里刷新您的 TextView。
  2. 将 YourDialogFragmentDismissHandler 的实例传递给 YourDialogFragment,例如通过构造函数
  3. 覆盖 YourDialogFragment 中的 onDismiss(),并通过 YourDialogFragmentDismissHandler 的实例以最简单的方式发送一条空消息。

代码

public class YourActivity extends Activity {
...
public void someMethod() {
...
YourDialoagFragment yourDialoagFragment =
new YourDialoagFragment(new YourDialogFragmentDismissHandler());
yourDialoagFragment.show();
...
}

private class YourDialogFragmentDismissHandler extends Handler {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);

// refresh your textview's here
}
}
...
}


public class YourDialoagFragment extends DialoagFragment {
...
Handler handler;

public YourDialoagFragment(Handler handler) {
this.handler = handler
}
...
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);

handler.sendEmptyMessage(0);
}
...
}

希望对您有所帮助!

关于Android - 关闭 DialogFragment 时刷新 "parent" fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com