I want to make a Dialog Screen Like WhatsApp Profile Photo Dialog Screen

喜夏-厌秋 提交于 2019-12-01 20:56:54

This looks like it will be a problem:

 if(requestCode==FILECHOOSER_RESULTCODE)  
          {  
              if (requestCode == GALLERY_PICTURE)

unless FILECHOOSER_RESULTCODE and GALLERY_PICTURE are the same ints then statement will never pass.

It may be possible to use request code to distinguish between "types" of photos i.e.

protected static final int MY_FACE_PHOTO    = 0;
protected static final int MY_CAR_PHOTO     = 1;
protected static final int MY_HOUSE_PHOTO = 2;

And you may use Intent.putExtra(String name, String value) when you create Intents before starting new activity, like:

@NonNls protected static final String STRING_EXTRA = "string_extra";
@NonNls protected static final String CAMERA           = "camera";
@NonNls protected static final String GALLERY          = "gallery";

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Intent galleryIntent  = new Intent(Intent.ACTION_PICK, 
                               MediaStore.Images.Media.EXTERNAL_CONTENT_URI

cameraIntent.putExtra(STRING_EXTRA, CAMERA);
galleryIntent.putExtra(STRING_EXTRA, GALLERY)

startActivityForResult(takePicture, 
                                MY_FACE_PHOTO /* put here your desired request code */)

After that in onActivityResult() method you may use them:

 protected void onActivityResult (int requestCode, int resultCode, Intent intent) 
 {
   super.onActivityResult(requestCode, resultCode, intent);

    if(intent != null)
    {
       if(resultCode == Activity.RESULT_OK)
       {
          String extraString = intent.getStringExtra(STRING_EXTRA);

           if(extraString.equals(CAMERA))
           {
              // ... i. e.
              switch (requestCode)
              {
                  case MY_FACE_PHOTO:
                  {
                       // ...
                       break;
                  }
                  case MY_CAR_PHOTO:
                  {
                       // ...
                       break;
                  }
                  case MY_HOUSE_PHOTO:
                  {
                      // ...
                      break;
                  }
                  default:
                  {
                      // ...
                      break;
                  }
              } 
           }
           else if(extraString.equals(GALLERY))
           {
              // ...
           }
       }
       else
       {
           // ...
       }
    }
 } 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!