アクティビティ間でデータをやり取りする
インテントでアクティビティ間でデータをやり取りすることができます。(できないと困りますが...)
メインからサブへのデータのやり取りの概要です。

MainActivituy.Java
public void onBtnClick(View v) {
    Intent sub = new Intent(this, SubActivity.class);
    //新しい作法で起動
    sub.putExtra("fromMainText", "Hello Sub World.");
    mSubLauncher.launch(sub);
}


putExtra()の第1引数はキーとなる任意の文字列です。第2引数に渡したい値を入れます。
文字列以外にも数値や配列などが適用できます。
SubActivituy.Java
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sub);

    //メインからのデータ取得
    Intent intent = getIntent();
    TextView tv = findViewById(R.id.textView);
    String str = intent.getStringExtra("fromMainText").toString();
    tv.setText(str);
}


サブはonCreate()でメインから渡される値を取得します。メインで設定したキー fromMainText を使って値を取得します。 getStringExtra()以外にgetFloatExtra()などgetXXXXExtra()形式のメソッドがたくさんあります。

サブからメインへのデータのやり取りの概要です。

使用するメソッドが逆になりました。
SubActivituy.Java
public void onBtnClick(View v) {
    Intent intent = new Intent();
    intent.putExtra("fromSubText", "How do you do?");
    setResult( Activity.RESULT_OK, intent );
    finish();
}
    
putExtra()はメインでの使われ方と同じです。
MainActivituy.Java
private class ActivityResultCallbackSub implements ActivityResultCallback<ActivityResult> {
    @Override
    public void onActivityResult(ActivityResult result) {
        if( Activity.RESULT_OK == result.getResultCode() )
        {
            TextView tv = findViewById(R.id.textViewMain);
            String str = result.getData().getStringExtra("fromSubText");
            tv.setText(str);

        }
    }
}

メインではresult.getData().getStringExtra()ちょっと長めですが、サブでの使われ方と同じです。