본문 바로가기

Frontend/Android

[Android] putExtra와 finish의 역할과 사용법

* putExtra(Key값, Value값)


- 영화에서도 주연이 있고 조연이 있듯이 putExtra는 조연이므로 이 액티비티에서 실행이 되는게 아니라 다른 액티비티에 값을 넘겨주는 조연역할을 한다.

- putExtra(Key값, Value)을 넣는다. 값을 받을 액티비티에서 key으로 값을 받아주면 된다.


* setResult(값이 정상적으로 넘겨진다 라는 뜻, 전달 할 객체);


- 시스템 쪽으로 putExtra의 값을 전달해 저장 할 수 있게 해준다.

- 예시)  setResult(Activity.RESULT_OK, i);


* finish();

- 액티비티 스택을 없애주는 역할을 한다. 즉 현 액티비티 스택을 없애주고 이전의 액티비티를 보여주게 하는거다.



package com.oneplus.intent;

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

public class MenuActivity extends AppCompatActivity {

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

findViewById(R.id.btnBack).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent();
/*
* 영화에서도 주연이 있고 조연이 있듯이 putExtra는 조연이므로
* 이 액티비티에서 실행이 되는게 아니라 다른 액티비티에 값을 넘겨주는
* 조연역할을 한다.
* putExtra(Key값, Value)을 넣는다. 값을 받을 액티비티에서 key으로 값을 받아주면 된다.
*/
i.putExtra("name", "mike");

/*시스템 쪽으로 putExtra의 값을 전달해 저장 할 수 있게 해준다.
* setResult(값이 정상적으로 넘겨진다 라는 뜻, 전달 할 객체);
*/
setResult(Activity.RESULT_OK, i);
//액티비티 스택을 없애주는 역할을 한다. 즉 현 액티비티 스택을 없애주고
// 이전의 액티비티를 보여주게 하는거다.
finish();
}
});
}


}