본문 바로가기

JAVA/Android

안드로이드 Intent putExtra, getIntent 예제 따라하기

- 안드로이드 Intent에서 putExtra를 해주게 되면 값을 넘겨 주고 getIntent를 이용해서 값을 받아 사용할 수 있다
- Intent 전달 된 값을 다시 result 할 수 있다.

-자바 소스
public class Ex06_IntentWithParamActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button button = (Button)this.findViewById(R.id.button1);
        button.setOnClickListener(this);
        
    }

public void onClick(View arg0) {
// TODO Auto-generated method stub
switch(arg0.getId()){
case R.id.button1:
TextView tv =(TextView)this.findViewById(R.id.textview);
Intent intent = new Intent(this, Activity1.class);
intent.putExtra("param1", tv.getText().toString());
startActivityForResult(intent,1); // 값을 전달 다시 받아오기위해 forresult를 사용했다.
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
//super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case 1:
if(resultCode == RESULT_OK){
String ret = data.getStringExtra("retVal"); //다시 받온 값을 여기서 처리한다.
TextView tv1 = (TextView)this.findViewById(R.id.textview);
tv1.setText(ret);
}else if(resultCode == RESULT_CANCELED){
}
break;
}
}
}
--------------------------------------------------------------------------------------------------------
public class Activity1 extends Activity implements OnClickListener {
EditText edit;
public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity);

       Intent intent = getIntent(); // 값을 받아온다.
       String s = intent.getStringExtra("param1");        
      
       edit = (EditText)this.findViewById(R.id.edittext);
       edit.setText(s);
       //edit.setO

       Button btn1 = (Button)this.findViewById(R.id.ok);
       btn1.setOnClickListener(this);
       Button btn2 = (Button)this.findViewById(R.id.cancel);
       btn2.setOnClickListener(this);
   }
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch(arg0.getId()){
case R.id.ok:
String s2 = edit.getText().toString();
Intent retIntent = new Intent();
retIntent.putExtra("retVal", s2);
setResult(RESULT_OK,retIntent);
finish();
break;
case R.id.cancel:
setResult(RESULT_CANCELED);
finish();
break;
}
}
}
 
-실행화면