찾다

 >  Q&A  >  본문

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

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

这是我对话框的代码;

@Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        dialog.dismiss();
    }
    
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        dialog = LoadingDialog.createLoadingDialog(activity);
        dialog.show();
    }
大家讲道理大家讲道理2773일 전558

모든 응답(3)나는 대답할 것이다

  • PHPz

    PHPz2017-04-17 17:59:17

    하위 스레드에서 UI를 호출하지 마세요

    으아아아

    이렇게 해보세요

    회신하다
    0
  • 大家讲道理

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

    그런 효과를 내고 싶은데, API를 요청할 때 로딩 효과를 만들어주세요. 이제 내 로딩 상자가 표시되지 않습니다.

    이것은 AsyncTask를 상속하는 요청 API 클래스(NetworkTask)입니다. 여기에 모든 요청을 캡슐화합니다.

    NetworkTask를 호출하기 위한 코드입니다. 생성자가 전달하는 값은 호출할 API 이름과 현재 액티비티(Activity) 입니다.

    onPostExecute와 onPreExecute가 모두 호출되고 대화 상자에도 값이 있습니다.

    하위 스레드가 ui를 호출할 수 없다고 들었습니다. 이 문제 때문일까요? 그럼 대화상자를 호출할 수 없나요?

    다음은 내 대화 상자의 레이아웃과 대화 상자의 Java 코드입니다

    으아아아

    회신하다
    0
  • 巴扎黑

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

    ProgressUpdate에는 재정의된 메서드가 있으며 그 안에 대화 상자가 작성되어 있습니다

    회신하다
    0
  • 취소회신하다