我不知道我哪里错了。这可能是一个微不足道的错误,但我无法弄明白。
形成我的第一个活动我正在为结果开始另一个活动:
Intent ccard_intent= new Intent(this, create_ccard.class);
startActivityForResult(ccard_intent,start_activity_for_ccard);
在新的Activity中,我使用:
返回Intent i = new Intent();
i.putExtra("card_name", Card_name);
setResult(create_ccard.RESULT_OK);
finish();
在我的第一个活动的onActivityResult中:
protected void onActvityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
this.requestCode=requestCode;
Toast.makeText(getBaseContext(), "resume working switch case error" + requestcode, Toast.LENGTH_LONG).show();
if(resultCode==RESULT_CANCELED){
flag=0;
}
}
我在requestCode的地方收到error0? 为什么?? 哪里出错了? 它应该是788,因为我正在使用它,同时打开活动。
三江源!
答案 0 :(得分:2)
你的行
startActivityForResult(ccard_intent,start_activity_for_ccard);
实际决定了你在
中获得的价值this.requestCode=requestCode;
请参阅文档here。
查看您的Toast代码
Toast.makeText(getBaseContext(), "resume working switch case error" + requestcode, Toast.LENGTH_LONG).show();
我最好的猜测是,因为您正在更改案例(使用requestcode
而不是requestCode
),因此Toast
打印出错误的值
另外(经过冗长的讨论):你的方法签名是错误的。它读取
protected void onActvityResult(int requestCode, int resultCode, Intent data)
应该是
protected void onActivityResult(int requestCode, int resultCode, Intent data)
相当简洁地解释了为什么你的requestCode从未将其值从0更改为
答案 1 :(得分:0)
更改
setResult(create_ccard.RESULT_OK);
到
setResult(RESULT_OK);