在两个不同的活动中使用两个不同的startActivityForResult

时间:2014-04-10 10:53:52

标签: android

我真的不知道怎么说,我只是用pic描述它

enter image description here

这是它的工作原理:

edittext1 (Enter) -> Listview1 (choose item) -> back to first activity with item from activityA

与第二个相同

edittext2 (Enter) -> Listview2 (choose item) -> back to first activity with item from activityB

我尝试使用startActivityForResult(set, 0);startActivityForResult(set, 1);,但它根本不起作用

public void onActivityResult(int requestCode,int resultCode, Intent data)
    {
    if(resultCode == 0) {
    //do things for first edittext
    }
    else if(resultCode == 1) {
    //do things for second edittext
    }
}
<{1>}和activityA上的

我用它来获取他们的项目并带回第一项活动

activityB

2 个答案:

答案 0 :(得分:2)

您必须检查请求代码,而不是结果代码

结果代码是一般代码信令,无论活动是否正确完成。 请求代码是您传递给新活动的代码,以便在完成时区分。

基本上,你应该使用类似的东西:

public void onActivityResult(int requestCode,int resultCode, Intent data) {
  if(resultCode == Activity.RESULT_OK) {
   if (requestCode == 0) {
     // do things for first edittext
   } else if (requestCode == 1) {
     //do things for second edit text
   }
  } else {
    // the activity didn't finish with result ok
  }
 }

答案 1 :(得分:0)

首先,你应该使用onActivityResult上面的@Override anotation。其次,你应该检查0,1的请求代码或你开始活动的任何代码。结果代码应与Activity.RESULT_OK进行比较。