Не получается передать данные из дочерней активности в родительскую
Есть 2 активности, родительская:
public class MainActivity extends AppCompatActivity {
private Button mButton;
private TextView mTextView;
private String mResalt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.main_text);
mButton = (Button) findViewById(R.id.bottom);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = Test_Activity.newIntent(MainActivity.this);
startActivityForResult(intent, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mResalt = Test_Activity.putText(data);
mTextView.setText(mResalt);
}
}
И дочерняя:
public class Test_Activity extends AppCompatActivity {
private EditText mEditText;
private TextView mTextView;
private static final String keyString = "com.bignerdranch.android.geoquiz.answer_shown";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_);
mTextView = (TextView) findViewById(R.id.text_test);
String text = String.valueOf(mTextView); // нужно передать этот текст в родительскую активность
TextResult(text);
}
public static Intent newIntent(Context packageContext){
Intent intent = new Intent(packageContext, Test_Activity.class);
return intent;
}
public static String putText (Intent resalt){
return resalt.getStringExtra(keyString);
}
private void TextResult (String text){
Intent data = new Intent();
data.putExtra(text, keyString);
setResult(RESULT_OK, data);
}
}
Я пытаюсь передать текст из дочерней активности в родительскую, но текст в родительской активности лишь заменяется на пустое место, а не на тот текст, который должен быть получен из дочерней активности.
При отладке обнаружил это:

Подскажите, пожалуйста, что с этим делать
Ответы (1 шт):
Параметры перепутаны
data.putExtra(text, keyString);а нужноdata.putExtra(keyString, text);String.valueOf(mTextView)- Не думаю, что это будет полезно. Если нужно взять строку из TextView, нужно делатьmTextView.getText().toString()Код должен делать то, о чем говорит. Вот такое недопустимо (метод называется putText, а на деле делает getStringExtra):
public static String putText (Intent resalt){ return resalt.getStringExtra(keyString); }
Также метод TextResult() - вообще по имени не понятно что он должен делать.
private void TextResult (String text)
- По стилю кода: Методы в Java никогда не начинаются с больших букв
private void TextResult (String text)- так не принято. Имена классов не должны содержать нижнее подчеркиваниеpublic class Test_Activity extends AppCompatActivity- так не принято