Android 썸네일형 리스트형 아마도 이건 자바 3바퀴 머릿속에 개념이 퍼뜩퍼뜩 떠오르지는 않는 상태이다.예를 들어 인터페이스는 인스턴스 생성이 안된다던지 이런 것들.그래서 PPT로 각 주제를 정리해보았다. 더보기 [Thread/Service/Broadcast] 5초마다 Toast 띄우기 시나리오는 다음과 같다: 1. Thread가 5초마다 sleep 한다.2. Service는 Thread가 sleep 했다는 신호를 보낸다.3. Broadcast Receiver가 그 신호를 받아서Toast로 유저에게 알려준다. 결과화면: 5초마다 Toast 메세지가 뜬다. 이 예제로 깨달은 것1. 자바 작명법을 꼭 따르자.클래스 이름을 "Service"로 했더니 에러나 경고는 안뜨지만 내부적인 문제점으로 인해 제대로 작동하지 않았다."android.app.Service"와 맞물렸던 것이다.context.startService(new Intent(MainActivity.this, Service.class)); 2. sendBroadcast() 할 때에는 Intent에 퍼미션을 꼭 달아주어야 한다.그렇지 않.. 더보기 Fragment를 호스팅하는 Activity * 호스팅 : 프래그먼트가 자신의 뷰를 위치시킬 수 있도록, 액티비티 뷰 계층의 장소를 제공하는 것이다. 프래그먼트는 화면에 나타나는 뷰를 자체적으로 가질 수 없다.액티비티의 뷰 계층에 포함될 때만 자신의 뷰가 나타날 수 있기 때문이다. (이미지 출처 http://tutorials.jenkov.com/android/fragment.html) 더보기 setRetainInstance(true) Vs onSaveInstanceState(Bundle) 둘의 차이점은 보존된 데이터가 얼마나 오래 존속하는가이다. 짧은 시간동안 데이터를 보존해야 할 때: setRetainInstance(true)액티비티가 소멸될만큼 오랜 시간동안: onSaveInstanceState(Bundle) 더보기 Android Studio에서 @drawable 대신 @mipmap! Ch13 MediaPlayer를 사용한 오디오 재생 / HelloMoon 앱을 제작중이다. 이미지 파일을 mdpi 폴더에 넣었다. 이제 Fragment를 위한 XML에서 이미지를 지정해줘야하는데@drawable 하위에 없다고 에러가 난다.이상할 건 아니다. 위 그림에 있는 계층에서만 봐도 'drawable' 폴더는 비어있다.혹시나 @mipmap...? 역시나 : ) 안드로이드 스튜디오에서는 mipmap을 사용하면 되는구나~ 더보기 매니페스트 정의: XML파일이며, 안드로이드 운영체제에게 앱을 설명하는 메타데이터를 포함한다. 우리 프로젝트의 루트 디렉터리에 위치한다. 앱의 모든 액티비티는 운영체제가 접근할 수 있게 반드시 매니페스트에 선언되어야 한다.왜냐하면.. Intent에 실린 class 이름이 그 패키지의 매니페스트에 선언되었는지를 확인하기 때문이다.매니페스트에 시작시킬 액티비티 이름이 없으면 ActivityNotFoundException 예외가 발생한다. 이클립스에서는 직접 매니페스트에 새로 만든 액티비티를 선언해줘야 했는데,안드로이드 스튜디오는 액티비티를 생성하면 자동으로 매니페스트에 선언해준다.내가 생각하는 안드로이드 스튜디오의 최대 장점이다.대학생 학부 시험에서 이 부분때문에 점수를 잃어본 기억이 있다.세상 점점 좋아지네 ㅎ.ㅎ 더보기 장치 회전과 액티비티의 부활 런타임 시에 언제든 구성 변경이 생기면안드로이드는 현재의 액티비티를 소멸시키고새로운 액티비티를 생성한다. 구성 변경의 예) 화면 전환(가장 빈번하다.), 키보드, 언어의 변경 장치 회전 시 데이터 저장하기안드로이드는 런타임 시에 대체 리소스를 제공하는 일을 훌륭하게 수행한다.그러나 이 때 반드시 데이터를 저장하는 방법이 필요하다.방향 전화 후 새로 생성된 액티비티는 이전 액티비티가 포함했던 데이터 값을 모른다. onSaveInstanceState(Bundle)이 열쇠다.Bundle은 문자열 키를 제한된 타입의 값으로 연관시키는, 키와 값을 한 쌍으로 데이터를 저장하는 구조이다.데이터를 Bundle 객체에 저장하기 위해 onSaveInstanceState()를 오버라이드 할 수 있다.그리고 그 데이터는 o.. 더보기 CH02 챌린지 all clear 1. 리스너를 TextView에 추가한다.2. 이전 버튼을 추가한다.mCurrentIndex += 2;mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;3. Button에서 ImageButton으로 변경한다. QuizActivity.java123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103package com.bignerdranch.android.. 더보기 이전 1 ··· 4 5 6 7 8 다음