В действии A намерение отправки с некоторыми строковыми значениями:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.Changepin:{
Intent i = new Intent(MainActivity.this,ChangePwd.class);
i.putExtra("plain1", plaintext);
i.putExtra("cipher1", ciphertext);
startActivityForResult(i,100);
//startActivity(i);
//finish();
}
break;
default:{
Log.e("","onOptionsItemSelected() Unknown menu event.");
}
break;
}
return true;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100){
if(resultCode==10){
String ciphertext1 = data.getStringExtra("changedcipher");
Toast.makeText(MainActivity.this, ciphertext1, Toast.LENGTH_LONG).show();
Log.e("mainactivity", "" + ciphertext1);
}
}
}
В действии B вызов setResult () с тем же кодом результата, что и метод onActivityResult () кода результата в действии A:
public void setNewPin(){
String ciphertext1=null; Intent i = new Intent(ChangePwd.this,MainActivity.class);
try{
ciphertext1 = crypthelper.encrypt(plaintext);
}catch (Exception e) {
}
i.putExtra("changedcipher", ciphertext1);
setResult(10,i);
Toast.makeText(ChangePwd.this, ciphertext1, Toast.LENGTH_LONG).show();
finish();
}