各ページにはがありActivity
、それぞれに(を使用して) を認識してページからデータをロードしますが、リクエストがエラーで終了した場合、タイムアウトを入力するか、接続が失われた場合は、ダイアログを表示する必要がありますサーバーへの呼び出しをやり直すオプションを使用すると、エラーごとに複数のダイアログが開かれるのを防ぐ問題は、次のスニペットで解決されます。ViewPager
PagerSlidingTabStrip
ViewPager
fragment
fragment
http request
Volley
ここでこのソリューションを参照してください: http://www.jorgecoca.com/android-quick-tip-avoid-opening-multiple-dialogs-when-tapping-an-element/
@Override
public void show(FragmentManager manager, String tag) {
if (manager.findFragmentByTag(tag) == null) {
super.show(manager, tag);
}
}
ユーザーがクリックしdialog button
て再試行すると、ダイアログが閉じられ、インターネット接続があるかどうかが確認されます。そうでない場合は、ダイアログを再度開く必要がありますが、ダイアログは再度表示されません。タグが表示されていると思いますにリリースされませんでしたFragmentManager
。
コードActivity
:
final Button mButton = ( Button ) this.findViewById( R.id.btn_opendialog );
final DialogFragmentHelper mDialog = new DialogFragmentHelper();
mDialog.setCallbackListener( new OnCallback() {
@Override
public void onCancel() {
}
@Override
public void onConfirm() {
// verify if network available
mDialog.show( MainActivity.this.getSupportFragmentManager(), DialogFragmentHelper.DIALOG_TAG );
}
} );
mButton.setOnClickListener( new OnClickListener() {
@Override
public void onClick( final View v ) {
mDialog.show( MainActivity.this.getSupportFragmentManager(), DialogFragmentHelper.DIALOG_TAG );
}
} );
誰かが回避策を提案してくれますか?