如何将Activity C结果带入活动A?

时间:2015-12-18 05:11:23

标签: android

我正在开发应用程序,我们正在从活动A创建活动B.在活动B中,我们创建了活动C,我们希望将图像和文本返回到活动A.

在谷歌检查但没有得到我正在寻找的答案。你能告诉我这是怎么可能的吗?

提前感谢您的帮助。

更新:首先是你的答案。让我更清楚地解释一下我的要求。

在活动A下,通过Intent我们打开Gallery并选择Image。通过在此活动中定义startActivityForResult,我们捕获用户选择的图像并创建新的Intent(活动B),其中我们通过putExtra函数获取所有参数。我们在这里显示用户选择的图像,并允许用户编辑图像和放置文本。 现在我们要找的是在已创建的活动A中显示已编辑的图像和文本。数据添加将通过列表视图已经存在少量列表视图行。

希望我们现在的要求更加明确。

提前感谢您的帮助。

更新(显示一些代码)

我在活动A中应用的代码

  Intent intent = new Intent(Intent.ACTION_PICK,               
   android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                intent.setType("image/*");
                startActivityForResult(Intent.createChooser(intent, "Select File"), SELECT_FILE);

结果可在活动A中通过startActivityForResult获得,如下所示

 if (requestCode == SELECT_FILE) {
            Uri selectedImageUri = data.getData();
            String[] projection =   
   {MediaStore.MediaColumns.DATA};Log.i("User_Chat_Page",  
   "projection="+selectedImageUri);
    Cursor cursor =managedQuery(selectedImageUri,projection,null,null,null);
    int column_index =  
     cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
     cursor.moveToFirst();

     String selectedImagePath = cursor.getString(column_index);
     image_name = selectedImagePath;
     Bitmap bm;
     BitmapFactory.Options options = new BitmapFactory.Options();
     options.inJustDecodeBounds = true;
     BitmapFactory.decodeFile(selectedImagePath, options);
     final int REQUIRED_SIZE = 200;
     int scale = 1;
     while (options.outWidth / scale / 2 >= REQUIRED_SIZE
     && options.outHeight / scale / 2 >= REQUIRED_SIZE)
               scale *= 2;
     options.inSampleSize = scale;
     options.inJustDecodeBounds = false;
     bm = BitmapFactory.decodeFile(selectedImagePath, options);
     Intent edit_image_intent = new Intent(ctx, 
     DrawOnBitmapActivity.class);
     edit_image_intent.putExtra("selected_img_path", 
     selectedImagePath);
     edit_image_intent.putExtra("selected_imguri", selectedImageUri);
     edit_image_intent.putExtra("message_source", "to");
     edit_image_intent.setData(selectedImageUri);
     ctx.startActivity(edit_image_intent);
                        }

活动B(intent:edit_image_intent)中显示的图像是用户编辑图像并放置文本。

我的查询是如何在Activity-A中显示编辑图像和文本。在列表视图中需要显示,因为视图行已经显示在Actiity-A中(例如,在聊天代码中)

2 个答案:

答案 0 :(得分:2)

我建议你通过数据库或共享偏好来做。意图对你来说是个不错的选择

答案 1 :(得分:0)

如果您想避免使用数据库或共享首选项,则可以在活动中级联onActivityResult()方法:

ActivityA -> startActivityForResult(AcivitityB)

             ActivityB -> startActivityForResult(ActivityC)

                          add text and image(url) here to result
                          setResult()
                          finish activity

             ActivityB.onActivityResult()
             get data from AcitivityC result

             setResult() with data received

ActivityA.onActivityResult()
get data from result