startActivityForResult(intent,반환코드); 를 인텐트로 넘기는 구간에 작성
onActivityResult 매소드를 Override하여서 반환된 데이터를 처리한다
MainActivity.java
public class MainActivity extends AppCompatActivity { TextView tvText; int Cnt=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvText = (TextView)findViewById(R.id.tvText); tvText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,MainActivity2.class); startActivityForResult(intent,1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==1){ if(resultCode== RESULT_OK){ Cnt += Integer.valueOf(data.getStringExtra("num")); tvText.setText(Cnt+""); } } } }
새로운 인텐트를 생성한다 – Intent intent = new Intent();
데이터를 setReuslt하여 반환값 지정해주고 finish();
MainActivity2.java
public class MainActivity2 extends AppCompatActivity { EditText editText; Button btnBack; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); btnBack = (Button)findViewById(R.id.btnBack); editText = (EditText)findViewById(R.id.edtNum); btnBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent =new Intent(); intent.putExtra("num",editText.getText().toString()); Toast.makeText(MainActivity2.this, editText.getText().toString(), Toast.LENGTH_SHORT).show(); setResult(RESULT_OK,intent); finish(); } }); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/tvText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textSize="30sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
activity_main2.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity2"> <EditText android:id="@+id/edtNum" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="numberSigned" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/btnBack" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/edtNum" /> </androidx.constraintlayout.widget.ConstraintLayout>