java - 如何从片段内的片段中获取图像?
问题描述
我有一个项目组织如下:
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
?
解决方案
我通过从 FindFoodAdminFragment 启动一个新活动并使用 getIntent().getExtras() 和 intent.putExtra("myKey", myString) 在活动和片段之间传输数据来解决它。在活动中 startActivityForResult 工作正常,所以我在活动中使用它然后触发 onActivityResult 活动。在 onActivityResult 我 putExtra imageUri,然后我开始了另一个包含 FindFoodAminFragment 和 getExtras 的活动。感谢大家的帮助。
推荐阅读
- javascript - 基于现有对象/数组创建一个空对象/数组
- performance - 臃肿的 CacheStorage 会减慢 Service Worker 的响应速度吗?
- r - 将跨行列标题添加到 knitr kable 表
- git - 使用 Git 的“交叉分支”
- c# - 如何在 .Net Core API 中禁用静态文件功能?
- google-apps-script - 可以使用 GAS 创建交互式 Web 应用程序吗?
- visual-studio-code - VSCode 中的自动前缀 - TypeError:无法读取 null 的属性“警告”?
- windows - 将 docker 容器推送到 Azure 容器注册表时,它显示“没有基本身份验证凭据”错误并停止
- java - 在两个节点(圆)之间绘制一条边(线)
- elasticsearch - ElasticSearch 可以搜索混合的“表格”