我已经通过DialogFragment创建了一个进度对话框,为这里,我将本文用作DialogFragment的基础: 事实上,我的应用程序有一个调用类,这个类使用AsyncTask在SQLite数据库中拷贝一些数据。 我使用进度对话框显示AsyncTask进度。

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

这是我的代码中的一。 我认为问题在这里:public class TafData {

private Context mContext;

public TafDownload(Context context) {

mContext = context;

}

... other code.. .

private class importTAFAsync extends AsyncTask {

. . . 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;

}

}

这是一张清单:

android:name="com.myapp.TafActivity"

android:label="@string/title_activity_taf">

android:name="android.support.PARENT_ACTIVITY"

android:value="myapp.MapsActivity"/>

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐