android dialogfragment 更新进度条,通过findFragmentByTag从FragmentManager获取 DialogFragment_android-fragments_...
我已经通过DialogFragment创建了一个进度对话框,为这里,我将本文用作DialogFragment的基础: 事实上,我的应用程序有一个调用类,这个类使用AsyncTask在SQLite数据库中拷贝一些数据。 我使用进度对话框显示AsyncTask进度。我的代码有效,但有一个小问题: 当用户旋转设备时,进度条不再更新,因为findFragmentByTag返回总是空的。这是我的代码中的一。
我已经通过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"/>
更多推荐
所有评论(0)