초보라서 그런지도 모릅니다. 근데... 안드로이드 왜 이렇게 구린가요 ㅠㅠ
자바는 상당히 잘 된다고 생각했는데... 자바할때 이렇게 짜증나는 스트레스를 별로 받은 기억이 없네요... (어차피 초보지만요..태클주시면 미워할거임;;;)
각설하고, A액티비티에서 B엑티비티에 인텐트값을 전달하려고 합니다.
A에는 버튼이 1,2,3 총3개가 있어요. 1을 누르면 스테이지1, 2를 누르면 스테이지2...
버튼을 클릭하면 B액티비티를 인텐트로 호출하는데요.
여기서 int 형 숫자를 보내려고 합니다.
사실 책에 나와있는걸로 아는데요, 커니님 책을 보면... 도통 뭔소린지 알수가 없어요 (너무 요약만 되있음)
다른책은 아직... 사지를 못했거든요 ㅠㅠ (다음달에 살 예정이지만 성격이 급해서... ㅋㅋ)
보내는법 및 받는법에 대해서 좀 알려주세요...
참고로 putExtra("stage",1) 요렇게 보내서 받을때 getIntExtra()에 받으려는데 getIntExtra("stage",1) 요런식으로 받아야 하더군요;;;
저 숫자 1은 알수 없는건데 -ㅅ-;; 그래서 getStrnigExtra 였나? 이거로 받아서 저장해보니..null 이더라구요 ㅠㅠ
하여간... int형 숫자를 인텐트로 보내는법좀 알려주세요~ (코드를 적어드릴까 했는데 지금 아르바이트중이라 ㅋㅋ;;; 코드가 집에있네용)
******************************************************************************************
질문을 조금 다르게 하겠습니다;;; 쩝;;; (얼마나들 봐주실지 모르겠지만서도;;;)
putExtra("stage",1) 부분에 stage랑 1이 키-값 쌍으로 간다고 책에서 본거같습니다. 답해주신 분들도 결국 default value라고 하셨으니...
그렇다면... 제가 정말 원하는건 int형 변수를 여기에 넣어서, 다른 액티비티에서 요 숫자를 꺼내가지고 int형 변수에 넣고싶은데
이방법은 어떻게 하는건가요...
이 숫자가 몇이냐에 따라서 결과물이 다르게 나오거든요. 아 이부분에 대해서 며칠을 씨름하는데 답이 안나와요 ㅠㅠ
그 방식이 null check나 default value를 따로 지정하지 않아도 되는 좋은 방법일텐데요.
윗분들 말씀대로 뒤에 값은 default value로 "stage" key로 값이 없으면 1을 반환한다는 의미인데... 책도 책이지만 API를 자세히 보시는게 좋을 것 같습니다.
보낼때 ("stage",1)로 보내구 받을때 ("stage",1)로 받은걸 int에 집어 넣어주면 된다는 말씀인가요?
정확히 제가 원하는 int변수를 받는법을 알고싶은건데... default value 라는건 일반 값이 아닌건가요? 좀 모르겠어용;;;
받을때 defaultValue가 필요한 이유는 null일 가능성이 있기 때문입니다.
넣지도 않았는데 뺄라고 하면 null이 나올수 있는데... int에 null을 넣으면 exception나오겠죠.
이런거 막을라고 defaultValue를 사용하는겁니다. 없으면 defaultValue를 받겠다는거죠.
그리고 영어압박은 누구한테나 다 있습니다.
저도 토익보면 신발사이즈나 키가 나올겁니다만... 그래도 레퍼런스 영문 보고 해석합니다.
안되면 구글링도 있구요... 오픈소스 프로젝트에 리포트도 올립니다. 이상한 영어써도 웬만큼 알아듣더군요 ㅡㅡㅋ
영어 압박이라고 하는분들의 잴큰 문제점은 그걸 핑계삼아 제대로 쳐다보지 않는다는 점입니다.
* int 형 값을 넣을때는 putExtra()을 쓰고,
public Intent putExtra(String name, int value);
* int 형 값을 꺼낼때는 getIntExtra()를 쓰면 됩니다.
public int getIntExtra(String name, int defaultValue);
name은 key 값으로써 보낼때와 받을때가 같아야 합니다.
getIntExtra() method의 두번째 defaultValue 값은 정해주기 나름입니다.
만약 getIntExtra()를 했는데 해당 name으로 intent에 put 되어 있는 값이 없을경우 리턴되는 값을 defaultValue로 지정할 수 있습니다.
예를 들어,
int val = Intent.getIntExtra("test", -1);
"test"란 name으로 put 된 값이 없다면 val 값은 -1이 되는 것입니다.
Intent i = new Intent();
i.putIntent("int_value", 333);
startActivity(i);
===================
getIntent().getIntExtra("int_value", 5); // = 333
######################################
Intent i = new Intent();
startActivity(i);
===================
getIntent().getIntExtra("int_value", 5); // = 5(default)
default value 가 필요한 이유는 아시는데?
default value 자체가 뭔지 모르겠다!
좀 앞뒤가 안 맞는 이야기 같군요 ^^
이런 경우는 자꾸 쓰다보면 아십시오.




getIntExtra("stage",1)에서 1은 기본값입니다.