모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    ♥Dara♥님의
    개인페이지입니다
    가입 : 11-06-10
    방문 : 1400회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_21603
    작성자 : ♥Dara♥
    추천 : 0
    조회수 : 337
    IP : 106.243.***.244
    댓글 : 1개
    등록시간 : 2017/10/31 10:28:13
    http://todayhumor.com/?programmer_21603 모바일
    안드로이드 Parcelable인터페이스 공부중 궁금한점이 있어요
    옵션
    • 본인삭제금지
    <div>Do it 안드로이드 앱 프로그래밍 책을 보면서 공부중인데요</div> <div><br></div>MainActivity.java 에서는 객체를 인텐트로 전달하기 위해서 <div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"><span style="color:#cc7832;">public static final </span>String <span style="color:#9876aa;font-style:italic;">KEY_SIMPLE_DATA </span>= <span style="color:#6a8759;">"data"</span><span style="color:#cc7832;">;</span></pre><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"></pre><pre style="font-family:Verdana;font-size:9pt;"><span style="background-color:#344134;">SimpleData</span> data = <span style="color:#cc7832;">new </span><span style="background-color:#344134;">SimpleData</span>(<span style="color:#6897bb;">100</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"Hello Android!"</span>)<span style="color:#cc7832;">;<br></span>intent.putExtra(<span style="color:#9876aa;font-style:italic;">KEY_SIMPLE_DATA</span><span style="color:#cc7832;">, </span>data)<span style="color:#cc7832;">;</span></pre>이렇게 선언했고</div> <div><br></div> <div>전달될 SimpleData.java는</div> <div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"><span style="color:#cc7832;">public class </span>SimpleData <span style="color:#cc7832;">implements </span>Parcelable {</pre></div> <div>매개변수 2개를 받아 변수를 초기화하는 생성자와</div> <div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"><span style="color:#808080;">// </span><span style="color:#808080;font-family:'굴림체';">숫자 데이터<br></span><span style="color:#cc7832;">int </span><span style="color:#9876aa;">number</span><span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"><br></span><span style="color:#808080;">// </span><span style="color:#808080;font-family:'굴림체';">문자열 데이터<br></span>String <span style="color:#9876aa;">message</span><span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"><br></span><span style="color:#629755;font-style:italic;">/**<br></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-style:italic;font-family:'굴림체';">데이터 </span><span style="color:#629755;font-style:italic;">2</span><span style="color:#629755;font-style:italic;font-family:'굴림체';">개를 이용하여 초기화하는 생성자<br></span><span style="color:#629755;font-style:italic;font-family:'굴림체';"> </span><span style="color:#629755;font-style:italic;">* <br></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-weight:bold;font-style:italic;">@param </span><span style="color:#8a653b;font-style:italic;">num<br></span><span style="color:#8a653b;font-style:italic;"> </span><span style="color:#629755;font-style:italic;">* </span><span style="color:#629755;font-weight:bold;font-style:italic;">@param </span><span style="color:#8a653b;font-style:italic;">msg<br></span><span style="color:#8a653b;font-style:italic;"> </span><span style="color:#629755;font-style:italic;">*/<br></span><span style="color:#cc7832;">public </span><span style="color:#ffc66d;">SimpleData</span>(<span style="color:#cc7832;">int </span>num<span style="color:#cc7832;">, </span>String msg) {<br> Log.<span style="font-style:italic;">d</span>(<span style="color:#6a8759;">"SimpleData</span><span style="color:#6a8759;font-family:'굴림체';">클래스</span><span style="color:#6a8759;">"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"SimpleData() </span><span style="color:#6a8759;font-family:'굴림체';">데이터</span><span style="color:#6a8759;"> 2</span><span style="color:#6a8759;font-family:'굴림체';">개 초기화 생성자 실행</span><span style="color:#6a8759;">"</span>)<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span><span style="color:#9876aa;">number </span>= num<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span><span style="color:#9876aa;">message </span>= msg<span style="color:#cc7832;">;<br></span>}</pre></div> <div><br></div>이렇게 Parcelable 인터페이스를 상속받아서  <div><br><div>Parcel객체를 이용해 초기화하는 생성자 그리고</div> <div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"><span style="color:#629755;font-style:italic;">/**<br></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-style:italic;font-family:'굴림체';">다른 </span><span style="color:#629755;font-style:italic;">Parcel </span><span style="color:#629755;font-style:italic;font-family:'굴림체';">객체를 이용해 초기화하는 생성자<br></span><span style="color:#629755;font-style:italic;font-family:'굴림체';"> </span><span style="color:#629755;font-style:italic;">* <br></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-weight:bold;font-style:italic;">@param </span><span style="color:#8a653b;font-style:italic;">src<br></span><span style="color:#8a653b;font-style:italic;"> </span><span style="color:#629755;font-style:italic;">*/<br></span><span style="color:#cc7832;">public </span><span style="color:#ffc66d;">SimpleData</span>(Parcel src) {<br> Log.<span style="font-style:italic;">d</span>(<span style="color:#6a8759;">"SimpleData</span><span style="color:#6a8759;font-family:'굴림체';">클래스</span><span style="color:#6a8759;">"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"SimpleData() Parcel</span><span style="color:#6a8759;font-family:'굴림체';">객체 초기화 생성자 실행</span><span style="color:#6a8759;">"</span>)<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span><span style="color:#9876aa;">number </span>= src.readInt()<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span><span style="color:#9876aa;">message </span>= src.readString()<span style="color:#cc7832;">;<br></span>}</pre></div> <div>정의된 메소드를 2개를 작성해주고</div> <div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"><span style="color:#cc7832;">public int </span><span style="color:#ffc66d;">describeContents</span>() {<br> Log.<span style="font-style:italic;">d</span>(<span style="color:#6a8759;">"SimpleData</span><span style="color:#6a8759;font-family:'굴림체';">클래스</span><span style="color:#6a8759;">"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"descriibeContents() </span><span style="color:#6a8759;font-family:'굴림체';">실행</span><span style="color:#6a8759;">"</span>)<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> return </span><span style="color:#6897bb;">0</span><span style="color:#cc7832;">;<br></span>}</pre><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"></pre><pre style="font-family:Verdana;font-size:9pt;"><span style="color:#629755;font-style:italic;">/**<br></span><span style="color:#629755;font-style:italic;"> * </span><span style="color:#629755;font-style:italic;font-family:'굴림체';">데이터를 </span><span style="color:#629755;font-style:italic;">Parcel </span><span style="color:#629755;font-style:italic;font-family:'굴림체';">객체로 쓰기<br></span><span style="color:#629755;font-style:italic;font-family:'굴림체';"> </span><span style="color:#629755;font-style:italic;">*/<br></span><span style="color:#cc7832;">public void </span><span style="color:#ffc66d;">writeToParcel</span>(Parcel dest<span style="color:#cc7832;">, int </span>flags) {<br> Log.<span style="font-style:italic;">d</span>(<span style="color:#6a8759;">"SimpleData</span><span style="color:#6a8759;font-family:'굴림체';">클래스</span><span style="color:#6a8759;">"</span><span style="color:#cc7832;">, </span><span style="color:#6a8759;">"writeToParcel() </span><span style="color:#6a8759;font-family:'굴림체';">실행</span><span style="color:#6a8759;">"</span>)<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span>dest.writeInt(<span style="color:#9876aa;">number</span>)<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span>dest.writeString(<span style="color:#9876aa;">message</span>)<span style="color:#cc7832;">;<br></span>}</pre>내부 CREATOR 객체생성을 위해 <div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:Verdana;font-size:9pt;"><span style="color:#cc7832;">public static final </span>Creator <span style="color:#9876aa;font-style:italic;">CREATOR </span>= <span style="color:#cc7832;">new </span>Creator() {<br><br><span style="color:#cc7832;">public </span>SimpleData <span style="color:#ffc66d;">createFromParcel</span>(Parcel in) {<br><span style="color:#cc7832;">return new </span>SimpleData(in)<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span>}<br><br><span style="color:#cc7832;">public </span>SimpleData[] <span style="color:#ffc66d;">newArray</span>(<span style="color:#cc7832;">int </span>size) {<br><span style="color:#cc7832;">return new </span>SimpleData[size]<span style="color:#cc7832;">;<br></span><span style="color:#cc7832;"> </span>}<br><br>}<span style="color:#cc7832;">;</span></pre></div>이렇게 작성된 상태인데요 <div><br><div>실행은 정상적으로 되는데</div> <div>로그를 찍어보니까</div> <div>실행순서가</div> <div><br></div></div></div></div> <div>1. SimpleData() 데이터 2개 초기화 생성자 실행</div> <div>2. writeToParcel() 실행</div> <div>3. createFromParcel() 실행</div> <div>4. SimpleData() Parcel객체 초기화 생성자 실행</div> <div><br></div> <div>이렇게 처리가 되는데</div> <div>1번이야 MainActivity.java에서 매개변수 2개로 new를 했으니까 실행되는건 아는데</div> <div>나머지 2,3,4는 따로 호출한 부분은 없는데 왜 실행되는지 책을봐도 이해가 잘안가네요</div> <div>알려주시면 감사하겠습니다</div>
    ♥Dara♥의 꼬릿말입니다
    <img src="http://t1.daumcdn.net/thumb/R1024x0/?fname=http://cfile10.uf.tistory.com/image/231FE433598093512DCA8C" alt="231FE433598093512DCA8C"><img_ src="http://t1.daumcdn.net/thumb/R1024x0/?fname=http://cfile28.uf.tistory.com/image/273EC733598092251261F6" alt="273EC733598092251261F6"><img_ src="http://t1.daumcdn.net/thumb/R1024x0/?fname=http://cfile27.uf.tistory.com/image/24582133598092330EDDA8" alt="24582133598092330EDDA8"><img_ src="http://t1.daumcdn.net/thumb/R1024x0/?fname=http://cfile6.uf.tistory.com/image/26BB7C335980924509D38E" alt="26BB7C335980924509D38E"><img_ src="http://t1.daumcdn.net/thumb/R1024x0/?fname=http://cfile10.uf.tistory.com/image/213B0E335980923C133AD5" alt="213B0E335980923C133AD5"><img_ src="http://t1.daumcdn.net/thumb/R1024x0/?fname=http://cfile6.uf.tistory.com/image/215C243359809287209F65" alt="215C243359809287209F65">

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    59
    스포츠용 블루투스 이어폰 추천좀해주세요 [1] 본인삭제금지 ♥Dara♥ 17/12/06 14:52 62 1
    안드로이드 Parcelable인터페이스 공부중 궁금한점이 있어요 [1] 본인삭제금지 ♥Dara♥ 17/10/31 10:28 59 0
    57
    프로그래밍 노트북 패널 TN? IPS? [6] 본인삭제금지 ♥Dara♥ 17/09/05 15:33 75 0
    56
    헬스 1달후 인바디 결과입니다 ♥Dara♥ 17/09/01 23:21 64 6
    55
    초급자가 볼만한 DB와 SQL을 공부할수있는 책 있을까요? [1] 본인삭제금지 ♥Dara♥ 17/08/25 12:19 74 0
    53
    헬스장 환불 해보신분 있나요? 본인삭제금지 ♥Dara♥ 17/08/02 20:58 48 1
    49
    서블릿매핑할때 context명을 제외하고 어떻게 접근하나요? [4] 본인삭제금지 ♥YY♥ 17/05/08 17:21 50 0
    48
    설레이는 연애가 하고싶다? 헤어지기는 싫다? [1] 외부펌금지 ♥YY♥ 17/05/04 08:35 130 1
    47
    회사에서 개발언어가 C#인데 계속 해도 될까요? 조언부탁드립니다. [7] 본인삭제금지 ♥YY♥ 17/03/28 21:25 66 0
    45
    ECS보드 바이오스 업데이트 해보신분 계신가요? [2] 본인삭제금지 ♥YY♥ 17/01/02 08:33 61 0
    44
    파워부족시 블루스크린 및 부팅이 안되는현상이 발생하나요? [8] 본인삭제금지 ♥YY♥ 16/12/21 22:33 45 0
    40
    10판하면 경험치100% 주는거 아닌가요? [2] ♥YY♥ 16/07/21 18:38 48 0
    35
    서버관리 OP직무는 어떤건가요?? [2] 본인삭제금지 ♥YY♥ 16/05/18 16:14 23 0
    34
    초기때보다 사양이 많이 올라갔나요?? [4] ♥YY♥ 16/04/02 18:32 56 0
    33
    HD5870 => R9 270x 업그레이드(?) 체감될까요??? [4] 본인삭제금지 ♥YY♥ 16/04/01 10:14 81 0
    [1] [2]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈