我为每个列表项都有一个Listview和TakePicture按钮事件。我需要在OnActivityResult方法上发送位置并获取位置,以使用该位置更新图像到列表项
我的代码是
holder.TakePicture1.Click += delegate (object sender, System.EventArgs args)
{
if (remnantModel != null)
{
Intent camIntent = new Intent(MediaStore.ActionImageCapture);
camIntent.PutExtra("Position", position);
context.StartActivityForResult(camIntent, 2);
}
};
在OnActivityResult函数中
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case 2:
if (data != null)
{
Bundle extras = data.Extras;
Bitmap imageBitmap = (Bitmap)extras.Get("data");
int pos = data.GetIntExtra("position", 0);
int position = data.Extras.GetInt("position", 0);
// Not getting position value here
RemList[pos].Path.SetImageBitmap(imageBitmap);
}
}
}
如上面的代码,我使用的是本机ActionImageCapture事件,无法在OnActivityResult函数中获取Position。
如何获取数据,即在OnActivityResult方法中的位置?
答案 0 :(得分:0)
获取数据,即在OnActivityResult方法中的位置
您无法通过代码获取<h1>Welcome to Demo page</h1>
中的位置。
1)它应该是OnActivityResult
,而不是Position
。
2)如果您将其更改为position
(Position
),您仍然无法获得该职位。
关于data.GetIntExtra("Position", 0);
方法:
如果您想从StartActivityForResult
跳到AcitivityA
而没有返回值,可以使用AcitivityB
,但如果您想从StartActivity
获取数据,则需要使用AcitivityB
,同时,您需要在 SystemCameraAcitvity 中使用SetResult方法,有问题,我们无法处理 SystemCameraAcitvity < / strong>,这是系统活动,我们的应用程序中没有活动,因此我们无法使用StartActivityForResult
将位置发送回包含SetResult
的活动。
因此,解决方案是,您需要在活动中定义静态变量来存储位置,在单击按钮时更改其值,并且在拍摄照片后,您需要判断ListView
和resultCode
,然后使用静态变量来设置图片。