gpt4 book ai didi

android - 通过 findFragmentByTag 从 FragmentManager 获取 DialogFragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:09 26 4
gpt4 key购买 nike

我已经通过 DialogFragment 创建了一个进度对话框,为此我使用这篇文章作为我的 DialogFragment 的基础:https://gist.github.com/daichan4649/6421407事实上,在我的应用程序中,我有一个调用类的 Activity ,该类使用 AsyncTask 复制将一些数据保存在 sqlite 数据库中。我使用进度对话框来显示 AsyncTask 进度。

我的代码有效,但是有一个小问题:当用户旋转设备时,进度条不再更新,因为 findFragmentByTag 总是返回 null。

这是我的一小段代码。我认为问题出在这里:

public class TafData {

private Context mContext;

public TafDownload(Context context) {

mContext = context;
}

... other code ...

private class importTAFAsync extends AsyncTask <String, Integer, String> {
... other code ...
}

private void showProgress() {
TafActivity tafactivity = (TafActivity) mContext;
FragmentManager fm = tafactivity.getFragmentManager();
ProgressDialogFragment pDialog = ProgressDialogFragment.newInstance("Caricamento TAF", "Caricamento in corso. Attendere...", 100);
pDialog.show(fm, "fragment_progress");
}

private void setMax(Integer... values) {
ProgressDialogFragment progress = getProgressDialogFragment();
if (progress == null) {
return;
}
progress.setMax(values[0]);
}

private void updateProgress(Integer... values) {
ProgressDialogFragment progress = getProgressDialogFragment();
if (progress == null) {
return;
}
progress.updateProgress(values[0]);
}

private void hideProgress() {
ProgressDialogFragment progress = getProgressDialogFragment();
if (progress == null) {
return;
}
progress.dismissAllowingStateLoss();
}

private ProgressDialogFragment getProgressDialogFragment() {
TafActivity tafactivity = (TafActivity) mContext;

Fragment fragment = tafactivity.getFragmentManager().findFragmentByTag("fragment_progress");
return (ProgressDialogFragment) fragment;
}
}

这是一份 list :

<activity
android:name="com.myapp.TafActivity"
android:label="@string/title_activity_taf">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="myapp.MapsActivity" />
</activity>

最佳答案

将此行添加到 AndroidManifest.xml 中的 TafActivity 声明中:

android:configChanges="orientation|keyboardHidden" 

这将防止系统在方向更改时破坏您的 Activity 。

关于android - 通过 findFragmentByTag 从 FragmentManager 获取 DialogFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24397635/

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