마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Intent 에 대한 궁금함.

0 추천

안녕하세요. Intent 에 대해서 아직 제대로 된 개념이 많이 없는 상태입니다.

제가 이해한 정도는 [사용자가 어떤 "Activity" 를 하려고 할 때 Android system 에 전달하는 정보] 입니다.

즉, Intent 에 포함된 정보를 가지고 Android system 이 알아서 어떤 행동을 한다는 거죠. 

그런데 하기 내용이 조금 이상해서 질문합니다.

 

MainActivity.java

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button startButton = (Button) findViewById(R.id.startButton);
        startButton.setOnClickListener(new OnClickListener() {
        	public void onClick (View v){
        		Intent myIntent = new Intent(getApplicationContext(), NewActivity.class);
        		startActivityForResult(myIntent, 1);
        	}
        	
        });
    }

 

NewAcitivity.Java

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newactivity);
        
        Button backButton = (Button) findViewById(R.id.backButton);
        backButton.setOnClickListener(new OnClickListener() {
        	public void onClick (View v){
        		Intent resultIntent = new Intent();
        		resultIntent.putExtra("name","소녀시대");        		
        		setResult(200, resultIntent);
        		finish();
        	}
        	
        });
    }

 

위 두개의 소스를 보고 있으면 MainActivity.java 에서는 Intent 메소드에 Context 와 class 가 포함되있는 반면, 

NewActivity 에는 그냥 Intent 만 되어있네요. 그 이유가 궁금해서요.

 

참고로 MainActivity 에서는 [시작] 이란 button 을 클릭하면 NewActivity 로 넘어가게 되고,

NewActivity 는 [돌아가기] 를 클릭하게 되면 MainActivity 로 넘어가는 간단한 프로그램입니다.

 

다들, 즐거운 프로그래밍 되세요. ^^b

익명사용자 님이 2013년 3월 31일 질문

1개의 답변

+2 추천
위에것은 해당 액티비티로 이동할때 쓰며 결과값을 받아내기 위해 forResult를 쓰고 있는것이고요

(보통은 startActivity) ... 그리고 아래것은 해당결과값을 이전 액티비티에 보내려고 사용한것입니다..

아마도 메인에서 뉴액티비티로 이동하고 뉴액티비티에서 메인으로 데이터값 결과를 전송하는 프로그램인가봅니다

그리고 참고로 뉴액티비티에 200이라고 적혀있는데 저렇게 쓰지말고... Activity.SUCCESS 인가 상수로

정의된게 있습니다(물론 이값은 200일겁니다 -_-)..... 그걸 가져다 쓰시는게... 아마 프로그래밍할때 혼란이 적지않을가 싶네여
건방진프로그래머 (26,630 포인트) 님이 2013년 3월 31일 답변
답변 너무 감사합니다. ^^

그렇다면, Intent 값을 전달함에 있어서 mainactivity 에서는 Intent 에 getapplicationContext 를 input 값으로 쓰는데, newactivity 에서는 그냥 intent() 로 정의하고 있는 이유가 궁금해요~
intent 소스 보세요 별거 없습니다. 그냥 package name 얻으려고 하는겁니다.
...