【发布时间】:2014-08-15 08:45:46
【问题描述】:
我已经通过 DialogFragment 创建了一个进度对话框,为此我使用这篇文章作为我的 DialogFragment 的基础:https://gist.github.com/daichan4649/6421407 实际上在我的应用程序中我有一个调用类的活动,并且这个类使用 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;
}
}
这是一个清单:
<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 的 Activity 声明。
-
@JDJ 您需要所有清单或正在寻找特别的东西。如果可能,我想避免发布所有清单,但如果您认为这可以帮助我可以做到。
-
我只需要从清单中查看您对 TafActivity 的
声明。 -
@JDJ 我在问题上添加了清单的一部分。
-
谢谢。尝试在活动声明中添加
android:configChanges="orientation|keyboardHidden"
标签: android android-fragments android-asynctask dialog