Android 如何将活动C结果引入活动A?
我正在开发一个应用程序,其中我们从活动A创建活动B。从活动B创建活动C,我们希望将图像和文本返回到活动A 在谷歌登记,但没有得到答案,我正在寻找。你能告诉我这怎么可能吗 提前感谢你的帮助 更新:首先,thnx为您提供答案。让我更清楚地解释我的要求 在活动A下,通过意图,我们打开图库并选择图像。通过在此活动中定义startActivityForResult,我们捕获了用户选择并创建了新意图(活动B)的图像,其中我们通过putExtra函数获取了所有参数。我们在这里显示用户选择的图像,并允许用户编辑图像和放置文本。 现在我们要寻找的是在已经创建的活动A中显示编辑过的图像和文本。如果列表视图行已经很少,那么数据添加将通过列表视图进行 希望我们现在的要求更加明确 提前感谢你的帮助 更新(同时显示一些代码) 下面是我在活动A中应用的代码Android 如何将活动C结果引入活动A?,android,Android,我正在开发一个应用程序,其中我们从活动A创建活动B。从活动B创建活动C,我们希望将图像和文本返回到活动A 在谷歌登记,但没有得到答案,我正在寻找。你能告诉我这怎么可能吗 提前感谢你的帮助 更新:首先,thnx为您提供答案。让我更清楚地解释我的要求 在活动A下,通过意图,我们打开图库并选择图像。通过在此活动中定义startActivityForResult,我们捕获了用户选择并创建了新意图(活动B)的图像,其中我们通过putExtra函数获取了所有参数。我们在这里显示用户选择的图像,并允许用户编辑
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(意图:编辑图像意图)中,用户编辑图像并放置文本
我的问题是如何在Activity-A中显示编辑图像和文本。列表视图中需要显示,因为Activity-A中已经显示了视图行(如聊天代码中的视图行)我建议您通过数据库或共享首选项进行此操作。如果要避免数据库或共享首选项,而不是在活动中级联ActivityResult()方法,那么意图将是一个错误的选择
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
如果它成功了,试试看。使用单个实例类,保留活动C中的图像和文本,并获取活动a中的图像和文本。共享首选项将起作用,或从活动3开始,除活动1外,请注意在实现方法2时可能存在问题,另一个方法是单个实例类,可能与