cari

Rumah  >  Soal Jawab  >  teks badan

android - 请求网络的时候出现自定义的对话框

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<code>public static Dialog createLoadingDialog(Context context){

        LayoutInflater inflater = LayoutInflater.from(context);

        View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view

        LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局

        // main.xml中的ImageView

        ImageView spaceshipImage = (ImageView) v.findViewById(R.id.imgLoading);

 

        SceneAnimation s = new SceneAnimation(spaceshipImage,imglist,1);

 

//        Glide.with(context).load(R.drawable.et_loader).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(spaceshipImage);

 

        Dialog loadingDialog = new Dialog(context,R.style.loadingDialogStyle);// 创建自定义样式dialog

 

        loadingDialog.setCancelable(true);// 不可以用“返回键”取消

        loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(

                LinearLayout.LayoutParams.FILL_PARENT,

                LinearLayout.LayoutParams.FILL_PARENT));// 设置布局

        return loadingDialog;

    }</code>

这是我对话框的代码;

1

2

3

4

5

6

7

8

9

10

11

12

<code>@Override

    protected void onPostExecute(String s) {

        super.onPostExecute(s);

        dialog.dismiss();

    }

     

    @Override

    protected void onPreExecute() {

        super.onPreExecute();

        dialog = LoadingDialog.createLoadingDialog(activity);

        dialog.show();

    }</code>

大家讲道理大家讲道理2895 hari yang lalu605

membalas semua(3)saya akan balas

  • PHPz

    PHPz2017-04-17 17:59:17

    Jangan panggil UI dalam urutan kanak-kanak

    1

    2

    3

    4

    5

    6

    <code>activity.runOnUiThread(new Runnable() {

        @Override

        public void run() {

            dialog.show();

        }

    });</code>

    Cuba seperti ini

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:59:17

    Saya ingin mencapai kesan sedemikian, apabila saya meminta api, buat kesan pemuatan. Sekarang kotak pemuatan saya tidak muncul.

    Ini ialah kelas api permintaan saya (NetworkTask), yang mewarisi AsyncTask, saya merangkum semua permintaan di sini.

    Ini adalah kod saya untuk memanggil NetworkTask. Nilai yang dilalui oleh pembina ialah nama api yang akan dipanggil dan aktiviti semasa (Aktiviti).

    onPostExecute dan onPreExecute kedua-duanya dipanggil dan dialog juga mempunyai nilai

    Saya mendengar bahawa benang kanak-kanak tidak boleh memanggil ui? Adakah kerana masalah ini? Jadi saya tidak boleh memanggil dialog?

    Berikut ialah susun atur kotak dialog saya dan kod java kotak dialog

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    <code>public class LoadingDialog {

     

        private static int[] imglist = new int[]{

                R.drawable.et_loading_00,

                R.drawable.et_loading_01,

                R.drawable.et_loading_02,

                R.drawable.et_loading_03,

                R.drawable.et_loading_04,

                R.drawable.et_loading_05,

                R.drawable.et_loading_06,

                R.drawable.et_loading_07,

                R.drawable.et_loading_08,

                R.drawable.et_loading_09,

                R.drawable.et_loading_10,

                R.drawable.et_loading_11,

                R.drawable.et_loading_12,

                R.drawable.et_loading_13,

                R.drawable.et_loading_14,

                R.drawable.et_loading_15

        };

     

        public static Dialog createLoadingDialog(Context context){

            LayoutInflater inflater = LayoutInflater.from(context);

            View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view

            LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局

            // main.xml中的ImageView

            ImageView spaceshipImage = (ImageView) v.findViewById(R.id.imgLoading);

     

            SceneAnimation s = new SceneAnimation(spaceshipImage,imglist,1);

     

    //        Glide.with(context).load(R.drawable.et_loader).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(spaceshipImage);

     

            Dialog loadingDialog = new Dialog(context,R.style.loadingDialogStyle);// 创建自定义样式dialog

     

            loadingDialog.setCancelable(true);// 不可以用“返回键”取消

            loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(

                    LinearLayout.LayoutParams.FILL_PARENT,

                    LinearLayout.LayoutParams.FILL_PARENT));// 设置布局

            return loadingDialog;

        }

     

    }</code>

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:59:17

    Terdapat kaedah yang diganti padaProgressUpdate, dan kotak dialog ditulis di dalamnya

    balas
    0
  • Batalbalas