不能回到 OnActivityResult
cant back to OnActivityResult
大家好,我想回到之前的 onActivityResult activity
这是我的代码
public void onClick(DialogInterface dialog, int id) {
Intent i = new Intent(DetailPhotoMedical.this, MedicalClaim.class);
Bundle extras = new Bundle();
// i.putExtra("photo", "");
extras.putString("photo","");
extras.putString("photoNo",photoNo);
i.putExtras(extras);
setResult(1000, i);
finish();
}
我想在 onActivityResult
中返回上一个 activity
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1000)
{
Intent ii = getIntent();
Bundle extras = ii.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1")
{
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
这是第二个活动的代码
Intent i = new Intent(MedicalClaim.this, DetailPhotoMedical.class);
/* i.putExtra("photo", strPhoto1);*/
Bundle extras = new Bundle();
extras.putString("photo", strPhoto1);
extras.putString("photoNo","photo1");
i.putExtras(extras);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
但是 OnActivityResult 没有捕捉到我的结果代码
你能告诉我哪里错了吗?
感谢
发生这种情况是因为您从不同的 Intent
.
获取数据
这个,
if(resultCode==100){
Intent ii = getIntent();
Bundle extras = ii.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1") {
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
应该是这样的
if(resultCode==100){
Bundle extras = data.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1") {
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
您可以在 onResultActivity
的参数中给出的意图中看到 data
。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
.
.
.
}
编辑: 确保您使用 StartActivityForResult();
调用 Activity。
希望对您有所帮助。
您用于捕获结果的代码是错误的,您应该使用这样的代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK) //Here is where you need to do the change
{
Intent ii = getIntent();
Bundle extras = ii.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1")
{
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
因为你比较了一个错误的参数,你的 if
中总是有 false
希望对您有所帮助
你的问题不清楚。
你应该更清楚地描述你的情况:
OnActivityResult
未调用。
OnActivityResult
被调用,但 resultCode
不是 1000。
OnActivityResult
被调用,resultCode
= 1000 但是你不能得到额外的数据。
对于前 2 个案例,请确保您拨打了 startActivityForResult()
。
对于第三种情况,请删除此行 Intent ii = getIntent();
并使用 Intent
这是 onActivityResult
.
的输入参数
要使用 Intent 调用第二个 activity,请使用
startActivityForResult(i)
而不是
startActivity(i)
不要使用
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
除非您知道使用它的后果以及在 onActivityResult 中获得意图,否则请使用
data
在
中作为参数传递的变量
onActivityResult(requestCode, resultCode, data)
像这样
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1000)
{
Bundle extras = data.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1")
{
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
终于解决了,
仅使用 statActivityForResult()
并删除 i.getintet 并使用 data.getExtras
大家好,我想回到之前的 onActivityResult activity
这是我的代码
public void onClick(DialogInterface dialog, int id) {
Intent i = new Intent(DetailPhotoMedical.this, MedicalClaim.class);
Bundle extras = new Bundle();
// i.putExtra("photo", "");
extras.putString("photo","");
extras.putString("photoNo",photoNo);
i.putExtras(extras);
setResult(1000, i);
finish();
}
我想在 onActivityResult
中返回上一个 activity protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1000)
{
Intent ii = getIntent();
Bundle extras = ii.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1")
{
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
这是第二个活动的代码
Intent i = new Intent(MedicalClaim.this, DetailPhotoMedical.class);
/* i.putExtra("photo", strPhoto1);*/
Bundle extras = new Bundle();
extras.putString("photo", strPhoto1);
extras.putString("photoNo","photo1");
i.putExtras(extras);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
但是 OnActivityResult 没有捕捉到我的结果代码
你能告诉我哪里错了吗?
感谢
发生这种情况是因为您从不同的 Intent
.
这个,
if(resultCode==100){
Intent ii = getIntent();
Bundle extras = ii.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1") {
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
应该是这样的
if(resultCode==100){
Bundle extras = data.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1") {
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
您可以在 onResultActivity
的参数中给出的意图中看到 data
。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
.
.
.
}
编辑: 确保您使用 StartActivityForResult();
调用 Activity。
希望对您有所帮助。
您用于捕获结果的代码是错误的,您应该使用这样的代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK) //Here is where you need to do the change
{
Intent ii = getIntent();
Bundle extras = ii.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1")
{
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
因为你比较了一个错误的参数,你的 if
中总是有false
希望对您有所帮助
你的问题不清楚。 你应该更清楚地描述你的情况:
OnActivityResult
未调用。OnActivityResult
被调用,但resultCode
不是 1000。OnActivityResult
被调用,resultCode
= 1000 但是你不能得到额外的数据。
对于前 2 个案例,请确保您拨打了 startActivityForResult()
。
对于第三种情况,请删除此行 Intent ii = getIntent();
并使用 Intent
这是 onActivityResult
.
要使用 Intent 调用第二个 activity,请使用
startActivityForResult(i)
而不是
startActivity(i)
不要使用
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
除非您知道使用它的后果以及在 onActivityResult 中获得意图,否则请使用
data
在
中作为参数传递的变量onActivityResult(requestCode, resultCode, data)
像这样
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==1000)
{
Bundle extras = data.getExtras();
photoFromDetail = extras.getString("photo");
photoNo = extras.getString("photoNo");
if (photoNo=="photo1")
{
strPhoto1="";
ivAttachment1.setImageResource(R.drawable.ic_menu_camera);
}
}
终于解决了,
仅使用 statActivityForResult()
并删除 i.getintet 并使用 data.getExtras