嘿伙计们,我想在之前的活动中回到onActivityResult
这是我的代码
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
中的上一个活动 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没有抓住我的结果代码
你可以告诉我哪里错了吗?THX
答案 0 :(得分:1)
要使用意图调用第二个活动,请使用
startActivityForResult(I)
而不是
startActivity(I)
不要使用
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
除非您知道使用它的后果以及在onActivityResult中使用
的意图数据
变量作为
中的参数传递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);
}
}
答案 1 :(得分:0)
它的发生是因为您从不同的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);
}
}
Sohuld是这样的。
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);
}
}
您可以在data
的参数中看到onResultActivity
的意图。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
.
.
.
}
编辑:确保您使用StartActivityForResult();
来调用活动。
我希望这会帮助你。
答案 2 :(得分:0)
您使用的代码用于捕获结果是错误的,您应该使用以下内容:
key->value
因为你比较了一个错误的参数,你的if
总是有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);
}
}
希望这能帮到你
答案 3 :(得分:0)
你的问题不明确。 您应该更清楚地描述您的案例:
OnActivityResult
未被调用。OnActivityResult
被调用,但resultCode
不是1000。OnActivityResult
被调用,resultCode
= 1000,但您无法获得额外数据。对于2个首例,请确保您致电startActivityForResult()
。
对于第三种情况,请删除此行Intent ii = getIntent();
并使用Intent
作为onActivityResult
的输入参数。
答案 4 :(得分:0)
最后它解决了,
只使用statActivityForResult()
并删除i.getintet并使用data.getExtras