13

I am starting an Activity for result as

startActivityForResult(new Intent(this,ActivityA.class),REQUEST_CODE)

ActivityA is started. There is a gridview on ActivityA, I want to get the position of selected image in method onActivityResult(int requestCode, int resultCode, Intent data) of caller Activity but I am not getting the way to do that

Azmat
  • 393
  • 3
  • 15

2 Answers2

27

In Activity A,

onItemClick() of GridView

//create a new intent...
Intent intent = new Intent();
intent.putInt("position",position);
setResult(RESULT_OK,intent);
//close this Activity...
finish();

in Caller Activity,

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent){
        super.onActivityResult(requestCode, resultCode, intent);
        Bundle extras = intent.getExtras();
        if(extras != null)
        int position = extras.getInt("position");
    }
user370305
  • 108,599
  • 23
  • 164
  • 151
0

To uniquely identify your startActivityForResult() callback , check for similarity and success of Activity A . Follow this:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
    super.onActivityResult(requestCode, resultCode, intent);
    if(requestCode==REQUEST_CODE)
      {
        if(resultCode==RESULT_OK)
          {
              Bundle extras = intent.getExtras();
              if(extras != null)
              int position = extras.getInt("position");
          }
       }
}