본문 바로가기

Android

(9)
[Error] Failed to compile values file 에러메세지에보면 '리소스를 머지할 수 없다' 는 오류메세지가 나온다. 유효하지 않은 값을 에 줘서 그렇다고 하는데 보면 greenPress에는 #을 생략했고 이전에 textColor 에는 6자리를 줘야하는데 5자리를 줘서 유효하지 않은 값을 주게되어 에러가 난것이다. 좌측에 색이 나오는걸 확인해야한다.
핸들러 사용하기 스레드와 핸들러 안드로이드에서 UI작업을 수행하는 스레드를 메인스레드 또는 UI스레드라고 부른다. ui와 관련된작업은 이 메인스레드에서 진행하여야하고 그 외 복잡하거나 오래걸리는 작업은 새로운 스래드(워커스레드)를 생성해서 진행하여야 어플의 반응성(ui반응)이 좋아지고 속도가 빨라진다. 그런데 워커스레드에서 네트워킹 작업을 하고 그 결과를 ui에 적용할때와 같이 메인스레드가 아닌 스레드에서 ui작업을 하게되는 경우 워커스레드에서 ui관련 작업 코드를 입력하면 당연히 오류가 나기때문에 반드시 핸들러를 이용해야한다. 이처럼 핸들러는 스레드간의 통신을 제공하는 안드로이드 객체이다. 핸들러 사용해서 시간지연시키는 작업을 다른 스레드에서 하기 윈도우10에 기본으로 탑재되어 있는 스티커메모 프로그램은 새로 타이핑할..
Android layout ) drawable 그리기 drawable 폴더에는 layout에 그릴 수 있는 이미지나 xml파일을 저장한다. 여기서 직접 그려서 xml파일로 만들어 요소의 백그라운드 등으로 활용할 수 있다. 사용 =>
SharedPreferences 공유환경설정파일 - 저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences API를 사용해야한다. - SharedPreferences 객체는 키-값 쌍을 읽고 쓸 수 있는 메서드를 제공한다. - 각 SharedPreferences 파일은 프레임워크에서 관리하며 비공개이거나 공유일 수 있다. ( preference를 공유한다는 말그대로 다른 앱과 공유할 수 있게 설정할 수 있다. ) SharedPreferences 핸들 가져오기 getSharedPreferences() : 앱의 모든 Context에서 이 메소드를 호출할 수 있다 첫번째 파라미터 : 키값 두번째 파라미터 : 모드 getPreferences() : 액티비티에 하나의 preferences만 만들고 사용하는경우, 이름을 파라..
Android layout ) constraintLayout 속성 layout_constraint ~ ui를 어떤 ui의 어디에 둘것인가를 정하는 속성 layout_constraintHorizontal_chainStyle 위치 관계과 정의된 ui요소와 요소를 얼마나 떨어트릴것인가 레이아웃 양옆에 붙는다고 제약조건을 주고 ui요소의 width를 0으로 만들면 두가지 제약조건을 충족하기 위해 요소가 퍼진다 gravity 로 정렬 실행됬을때만 보고싶지만 그래도 레이아웃 편집중에는 보면서 해야될때
명시적 Intent 로 Activity 시작 인텐트 쓰는 경우 Intent는 메시징 객체다. 다른 앱 구성 요소(안드로이드 4대 컴포넌트)로부터 작업을 요청하는데 사용할 수 있다. 액티비티 시작 서비스 시작 브로드캐스트 전달 다른 화면으로 전환 하면서 데이터도 넘기는법 (Activity 전환) 인텐트는 명시적 인텐트와 암시적 인텐트로 나뉘는데 명시적 인텐트는 앱 내의 특정 액티비티나 서비스 등 특정한 앱 구성 요소를 시작하는 데 사용하는 인텐트이다. 명시적 인텐트를 생성하려면 Intent 객체에 대한 구성 요소 이름을 정의하고, 나머지는 선택사항이다. 여기서는 명시적 인텐트만 다룬다. 이동하고자 하는 액티비티의 정보를 담은 인텐트 객체 생성 putExtra 로 파라미터를 담아준다. (스프링의 ModelAndView 객체 .addAttribute와 ..
Android layout ) resource활용해서 글씨 써주기 외 resource 활용해서 글씨써주기 안드로이드에서는 xml을 resource 라는 root파일에 보관하는데 모두 안드로이드에서 R클래스로 관리되어 변수처럼 사용할 수 있다고 했다. 이 중 values폴더에는 우리가 레이아웃을 만들거나 소스파일을 수정할때 color나 string을 특정값을 지정해두고 편하게 name값으로 호출해 쓸 수 있다. 같은 xml파일에서 사용할 때는 "@폴더이름/name값" 으로 불러오고 소스코드에서 사용할 때는 레이아웃요소들이 관리되는 클래스명과 변수명으로 참조한다.(name이 변수명으로 활용된다.) 이런 패턴으로 코딩을 해줘야 동일된 값은 values파일에서 값을 수정해줌으로서 유지보수를 편하게 할 수 있다. Log.~ 이 의미하는것 d 는 debug , e 는 에러 등.. 로..
Activity 소개와 레이아웃 인플레이션 Activity는 레이아웃 인플레이션을 통해 앱의 UI에 의미(기능)을 부여하는 역할을 한다. 일반적으로 Activity는 실행되는 앱의 전체 화면을 차지한다. 모든 앱에는 활동(Acitivity)이 하나 이상 있다. 프로젝트를 처음 생성하면 생기는 MainActivity는 최상위 수준 또는 앱을 실행하면 보게되는 첫번째 활동을 정의한다. (첫번째로 보이는 UI가 동작하도록 정의한다.) Activity에는 특정 목적이 있다. 예를 들어 사진 갤러리는 사진그리드를 표시하는 Activity, 개별 사진을 보는 Activity, 개별 사진을 편집하는 Activity가 있을 수 있다. MainActivity.kt 분석 레이아웃 인플레이션 뷰의 배치와 속성을 xml 파일에 뷰의 기능을 소스코드에 정의해 두었다고 ..
얄팍한 안드로이드 기본 Project -> 하나의 워크스페이스 Module -> 곧 한개의 앱 파일 구조 Activity Context 객체 안드로이드에서 가장 흔하게 인자로 전달되는 객체인 context는 뭘까? https://developer.android.com/reference/android/content/Context Application 환경에 대한 전역 정보를 접근하기 위한 인터페이스 추상 클래스이며 실제 구현은 Android 시스템에 의해 제공된다. Context를 통해 어플리케이션에 특화된 리소스나 클래스에 접근할 수 있다. Acitivity실행, Intent 브로드캐스팅 그리고 Intent 수신 등과 같은 응용 프로그램 수준의 작업을 수행하기 위한 API를 호출할 수 있다. 안드로이드 시스템에서 제공하는 AP..