变量的值在活动中不会立即改变

时间:2016-11-23 05:11:00

标签: android

我正在制作一个编辑个人资料页面,其中我显示用户可以编辑个人资料图片的用户的个人资料图片。在点击提交之前我想保存个人资料图片的最终更新网址。问题是,如果我更改个人资料图片并立即点击提交存储网址的变量值不会改变,但如果我等待几秒钟,那么更改是否有办法立即更新值。

 **My edit profile class**



public class DocEditProfileInfo extends DocBaseActivity {
  private static final String TAG = 
    private String profilePicUrl;
    public String profilepicUrlComplete;

    ArrayList<String> mImagesString = new ArrayList<>();
    private ProgressBar imageProgressBar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ButterKnife.bind(this);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

        imageProgressBar = (ProgressBar) findViewById(R.id.progress);
        setUpRestAdapter();
        setSalutation();
        setDocPersonalDetails();
        ImageView iv = (ImageView) findViewById(R.id.camera_new);
        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setDialogForImage();
            }
        });


        docSubmitInfo.setOnClickListener(this);


    }





    private void setDialogForImage() {
        final Dialog dialog = new Dialog(this);
        dialog.setContentView(R.layout.dialog_select_from_source);
        Button btnCamera = (Button) dialog.findViewById(R.id.btnCamera);

        Button btnDocs = (Button) dialog.findViewById(R.id.btnDoc);
        btnDocs.setVisibility(View.INVISIBLE);
        Button btnGallery = (Button) dialog.findViewById(R.id.btnGallery);
        dialog.show();
        btnCamera.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(intent, 0);

                dialog.cancel();
            }
        });

        btnGallery.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                Intent galleryIntent = new Intent(Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// Start the Intent
                startActivityForResult(galleryIntent, PICK_FROM_GALLERY);
                dialog.cancel();

            }
        });

    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Uri mImageCaptureUri;
        if (resultCode != RESULT_OK) {
            return;
        }
        if (requestCode == 0 && resultCode == RESULT_OK) {


            Bitmap bp = (Bitmap) data.getExtras().get("data");
            // Uri selectedImageUri = data.getData();

            // Glide.with(this).load(selectedImageUri).fitCenter().into(personImage);
            personImage.setImageBitmap(getRoundedShape(bp));
            //   personImage.setImageBitmap(bp);
            // CALL THIS METHOD TO GET THE URI FROM THE BITMAP
            Uri tempUri = getImageUri(getApplicationContext(), bp);
            // CALL THIS METHOD TO GET THE ACTUAL PATH
            File filePath = new File(getRealPathFromURI(tempUri));
            sendImagesToServerFromCamera(filePath.getPath());


        } else if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
      /*      Uri selectedImageUri = data.getData();
            Log.e(TAG, "onActivityResult: URI " + selectedImageUri);
            Glide.with(this).load(selectedImageUri).into(personImage);*/

            Uri selectedImage = data.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};

            // Get the cursor
            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            // Move to first row
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String imgDecodableString = cursor.getString(columnIndex);
            cursor.close();

            // Set the Image in ImageView after decoding the String
            personImage.setImageBitmap(getRoundedShape(BitmapFactory
                    .decodeFile(imgDecodableString)));
            sendImagesToServerFromCamera(imgDecodableString);


        }
    }

    public Bitmap getRoundedShape(Bitmap scaleBitmapImage) {
       *******
    }


    private String getRealPathFromURI(Uri tempUri) {
        ********
    }

    public Uri getImageUri(Context inContext, Bitmap inImage) {
      *********
    }

    private void sendImagesToServerFromCamera(String path) {
        File imgPath = new File(path);
        Log.e(TAG, "PATH " + path);
        RequestBody requestFile =
                RequestBody.create(MediaType.parse("image/jpg"), imgPath);
        //For sending all types of images , presently only jpg allowed
        //  RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), imgPath);
        MultipartBody.Part body =
                MultipartBody.Part.createFormData("file", imgPath.getName(), requestFile);
  /*      MultipartBody.Part body =
                MultipartBody.Part.createFormData("file", imgPath.getName(), fbody);*/

        Call<ProfilePicture> call = ProfilePicAdapter.sendProfilePic(body);


        call.enqueue(new Callback<ProfilePicture>() {
            @Override
            public void onResponse(Call<ProfilePicture> call, Response<ProfilePicture> response) {
                if (response.isSuccessful()) {
                    profilePicUrl = response.body().getUrl();
                    //  profilepicUrlComplete = BASE_URL_FOR_IMAGE + profilePicUrl;
                    //    String profilePicUrl =  BASE_URL_FOR_IMAGE + profilePicUrl;
                    if (response.body().getUrl() != null) {
                        profilePicUrl = response.body().getUrl();
                        String profilePictureUrlComplete = BASE_URL_FOR_IMAGE + profilePicUrl;
                        setProfilePicURL(profilePictureUrlComplete);
                    }
                } else {
                    Log.e(TAG, "UNSUCCESSFUL RESPONSE " + response.errorBody() + "*" + response.code());
                }
            }

            @Override
            public void onFailure(Call<ProfilePicture> call, Throwable t) {
                Log.e(TAG, "onFailure: " + t.toString());
            }
        });
    }

 private void setProfilePicURL(String profilePictureUrlComplete) {
    profilepicUrlComplete = profilePictureUrlComplete;
    Log.e(TAG, "setProfilePicURL: " + profilePictureUrlComplete);
}    

    private void setDocPersonalDetails() {
       *********
}



    @Override
        public void onClick(View v) {
            if (isEditProfileValid()) {

                Log.e(TAG, "onClick: PROFILE URL " + profilepicUrlComplete);
                ***docPersonalDetailsUpdate.setProfilePic(profilepicUrlComplete);***
                Call<DoctorProfile> call = docPersonalDetailsUpdateAdapter.docEditPersonalDetails(docPersonalDetailsUpdate);
                if (NetworkUtils.isNetworkConnected(this)) {
                    call.enqueue(new Callback<DoctorProfile>() {
                        @Override
                        public void onResponse(Call<DoctorProfile> call, Response<DoctorProfile> response) {

                            if (response.isSuccessful()) {

                                finish();


                            }
                        }


                        @Override
                        public void onFailure(Call<DoctorProfile> call, Throwable t) {

                            Log.e(TAG, "onFailure: ");
                        }
                    });
                } else {
                    SnakBarUtils.networkConnected(this);
                }

            }

0 个答案:

没有答案