首页 > 解决方案 > 如何从片段内的片段中获取图像?

问题描述

我有一个项目组织如下:

AdminAddNewMerchantActivity

->时间片段

---->查找FoodAdminFragment

---->MapMerchantFagment

---->价格片段

---->开始片段

---->结束片段

->订单片段

---->订单不完整

---->完成订单

PickImageActivity

在哪里:

-> - 一个新的子目录

----> - 一个子目录

我正在尝试选择图像并分配它。我成功地让它工作PickImageActivity,但在获得相同的代码工作时遇到问题FindFoodAdminFragment。我使用的代码PickImageActivity如下:

public class PickImageActivity extends AppCompatActivity {
ImageView image;
CircleImageView imageBanner;
private Uri imageUri, imageUri2;
private static final int GalleryPick = 1, GalleryPickBanner = 2;

   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pick_image);
   .
   .
   .
        image = findViewById(R.id.pi_input_merchant_image);
        imageBanner = findViewById(R.id.pi_input_banner_image);
        Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT, 
        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(galleryIntent, GalleryPick);
   .
   .
   .
    }

   public void onActivityResult(int requestCode, int resultCode, Intent data)
   {
           super.onActivityResult(requestCode, resultCode, data);
           if((requestCode == GalleryPick) && (resultCode == RESULT_OK) && (data!=null))
           {
               imageUri = data.getData();
               image.setImageURI(imageUri);
               //  Prevalent.currentMerchant.setImage();
           }
           else if((requestCode == GalleryPickBanner) && (resultCode == RESULT_OK) && (data!=null))
           {
               imageUri2 = data.getData();
               imageBanner.setImageURI(imageUri2);
           }
       }
   }
}

问题出在startActivityForResult(galleryIntent, GalleryPick);我尝试过super.startActivityForResult(galleryIntent, GalleryPick);getParentFragment().startActivityForResult(galleryIntent, GalleryPick);但它不起作用。我如何让它工作FindFoodAdminFragment

标签: javaandroidimagefragmentstartactivityforresult

解决方案


我通过从 FindFoodAdminFragment 启动一个新活动并使用 getIntent().getExtras() 和 intent.putExtra("myKey", myString) 在活动和片段之间传输数据来解决它。在活动中 startActivityForResult 工作正常,所以我在活动中使用它然后触发 onActivityResult 活动。在 onActivityResult 我 putExtra imageUri,然后我开始了另一个包含 FindFoodAminFragment 和 getExtras 的活动。感谢大家的帮助。


推荐阅读