Co jest zamierzone z parametrów onActivityResult

Tutaj jest mójfirst activity kod, z którego dzwonięsecond 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();             
  }
}

A oto kodchap.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();

   }
});

tutaj to widzęsetResult(RESULT_OK, data) ma dwa argumenty, ale
onActivityResult(int requestCode, int resultCode, Intent data) ma trzy i chcę wiedzieć jakonActivityResult dostaje wartość trzeciego parametru? Jak to działa, czy ktoś może mi powiedzieć? Dlaczego ten błąd nie jest

questionAnswers(2)

yourAnswerToTheQuestion