티스토리 뷰
우선 앞에서 Intent에 관해서 예제 2개를 알아 보았습니다.
Intent 예제(1) 안드로이드 Activity 이동
이번에 코드 짤일이 있어서 짜고 있는데 Intent로 변수를 전달 해줄 일이 생겨서 확인 해보니 이러한 내용을 적은적이 없어 한번 살펴보려고 합니다~!
Intent로 변수 전달?
앞선 예제(2)에서 사용중인 어플에서 안드로이드 기본 어플로 Intent를 통한 실행과 주소값, 번호(숫자)를 전달하는것을 해보았습니다. 이제 그러한 변수 전달을 사용중인 앱상에서 Activity를 이동간에 이루어지도록 해보겠습니다. (물론 한쪽에서 static 형태로 변수를 선언하였다면 이 방법을 통하지 않고도 다른 쪽 Activity에서 사용이 가능 할 것입니다.)
Activity간 변수를 전달 해보자!
결론적으로는 Activity간 변수(값) 전달이지만 위에서는 Intent로 변수를 전달한다고 써져있는걸 확인 하실 수 있습니다. 실제로 Intent의 메서드를 이용해서 전달을 해서 그렇게 말씀드렸습니다. 일단 사용한 코드는 Intent 예제(1)에서 사용했던 코드를 조금만 변형하여 사용하였습니다. MainActivity는 다음과 같이 작성하였습니다.(int a = 3; 추가)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class MainActivity extends AppCompatActivity { Button btn; int a = 3; // 변수 하나를 추가하였습니다 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); } }); } } | cs |
SecondActivity는 MainActivity에서 변수(값)를 잘 받아왔는지 확인하기 위해서 TextView를 추가하였습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class SecondActivity extends AppCompatActivity { Button btn; TextView view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); btn = (Button) findViewById(R.id.button2); view = (TextView) findViewById(R.id.textView); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(SecondActivity.this, MainActivity.class); startActivity(intent); } }); } } | cs |
이제 두개의 Activity에서 값을 주고 받아 보겠습니다.
1 | intent.putExtra("passData",a); | cs |
1 2 3 | Intent main_intent = getIntent(); a = main_intent.getIntExtra("passData",-1); view.setText(""+a); | cs |
MainActivity에서 Go 버튼을 눌러 SecondActivty로 간뒤 putExtra로 준 3이란 값을 잘 받아서 출력하고 있는것을 볼 수 있습니다! 안드로이드 스튜디오에서 putExtra를 입력하시면 String Double Int등등 다양한 type을 지원하는 것을 확인하실수 있습니다. 따라서 원하는 값을 Key를 통해 전달하여 값을 잃어버리지 않고 새로운 Activity에서 사용하실수있습니다!! 수고하셨습니다~
'안드로이드' 카테고리의 다른 글
[안드로이드] Glide 캐시 사용 하지 않기 (1) | 2017.04.15 |
---|---|
[안드로이드] EditText 한글 밑줄 문제 (0) | 2017.04.15 |
[안드로이드] Jsoup 오류 해결법(isSBSettingEnabled) (0) | 2017.04.14 |
[안드로이드] Intent 예제(2) 안드로이드 어플 사용 (0) | 2017.04.14 |
[안드로이드] Intent 예제(1) 안드로이드 Activity 이동 (0) | 2017.04.12 |
- Total
- Today
- Yesterday