본문 바로가기

안드로이드 프로그래밍

[안드로이드 3일차] startActivityForResult() 다루어 보기

결과물!






MainActivity.java

package com.cjwplatform.myapp2;

import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private static final int REQUEST_CODE = 1000;

private EditText mNameEditText;
private EditText mAgeEditText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mNameEditText = findViewById(R.id.name_edit);
mAgeEditText = findViewById(R.id.age_edit);

findViewById(R.id.submit_button).setOnClickListener(this);
}

@Override
public void onClick(View view) {
Intent intent = new Intent(this,SecondActivity.class);
intent.putExtra("name",mNameEditText.getText().toString());
intent.putExtra("age",mAgeEditText.getText().toString());

startActivityForResult(intent,REQUEST_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);

// requestcode가 들어온다면
if(requestCode == REQUEST_CODE && resultCode == RESULT_OK && data != null){
String result = data.getStringExtra("result");
Toast.makeText(this, result ,Toast.LENGTH_SHORT).show();
}
}

}


SecondActivity.java

package com.cjwplatform.myapp2;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;


public class SecondActivity extends AppCompatActivity implements View.OnClickListener {

private TextView mMessageTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

Intent intent = getIntent();
String name = intent.getStringExtra("name");
String age = intent.getStringExtra("age");

mMessageTextView = findViewById(R.id.message_edit_text);
mMessageTextView.setText(age + "살" + name);

findViewById(R.id.result_button).setOnClickListener(this);
}

@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.putExtra("result",mMessageTextView.getText().toString()); // 키를 result로 한다.

setResult(RESULT_OK, intent); // 데이터를 담아서 startActivityForResult를 호출한 액티비티로 돌려줌.
finish(); // 액티비티 종료를 해주어야 결과를 전달한 MainActivity로 넘어간다.
}
}