Was ist die Absicht von onActivityResult-Parametern?

Hier ist meinfirst activity Code von wo ich den anrufesecond Activity:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT){       
    startActivityForResult(new Intent("chap.two.Chapter2Activity2"),request_Code);          
  }    
  return false;
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == request_Code) {
    if (resultCode == RESULT_OK) 
      Toast.makeText(this,data.getData().toString(),Toast.LENGTH_SHORT).show();             
  }
}

Und hier ist ein Code vonchap.two.Chapter2Activity2:

Button n = (Button) findViewById(R.id.btn_OK);
n.setOnClickListener(new View.OnClickListener() {               
   @Override
   public void onClick(View v) {
     // TODO Auto-generated method stub

     Intent data = new Intent();
     //---get the EditText view---
     EditText txt_username =(EditText) findViewById(R.id.txt_username);
     //---set the data to pass back---
     data.setData(Uri.parse(txt_username.getText().toString()));
     setResult(RESULT_OK, data);
     //---closes the activity---
     finish();

   }
});

hier sehe ich dassetResult(RESULT_OK, data) hat aber zwei argumente
onActivityResult(int requestCode, int resultCode, Intent data) hat drei und ich will wissen wieonActivityResult Wert für dritten Parameter bekommen? Wie es funktioniert kann mir jemand sagen? Warum ist dieser Fehler nicht?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage