0

私は ActionBar タブと ViewPager を宣言したアクティビティを使用しています。すべてのページはオンラインでデータを取得し、ListView に表示しています。ネットワーク接続がないときに AlertDialog を表示しています。問題は、AlertDialog がワンクリックでキャンセルされないことです。6 つのタブと同じ ViewPager があり、6 回クリックするとキャンセルされます。

以下は完全なコードです。

public class AlertDialogBox  extends DialogFragment{
Context mContext;
StartActivity sa;
public AlertDialogBox(Context context) {
    mContext = context;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    sa =new StartActivity();
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
    //alertDialogBuilder.setTitle("Really?");
    alertDialogBuilder.setMessage("Check your internet connection");
    //null should be your on click listener
   //alertDialogBuilder.setPositiveButton("OK", null);
    alertDialogBuilder.setNegativeButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {

            //dialog.dismiss();
            //mContext.
            //mContext.finish();
            sa.finish();

        }
    });


    return alertDialogBuilder.create();
}
}
4

1 に答える 1

0

インターネット接続の確認は、各ページではなくメイン アクティビティに移動してください。また、メイン アクティビティからダイアログを表示します。

public Dialog onCreateDialog(Bundle savedInstanceState) {

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
    alertDialogBuilder.setMessage("Check your internet connection");       
    alertDialogBuilder.setNegativeButton("OK", new DialogInterface.OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
     dialog.dismiss();
     finish();      

   }
});
return alertDialogBuilder.create();

}

于 2013-06-27T06:16:01.297 に答える