앱을 만들다 보면 인텐트를 통해 단순히 String, int, boolean 같은 기본 타입 뿐 아니고 커스텀 클래스나 오브젝트를 다른 컴포넌트에 전달해 줘야 할 경우가 많다. 그 경우 단순히 그냥 인텐트에 putExtra() 로는 넣어줄 수가 없다.안드로이드에서는 그런 경우를 위해 자바의 Serialization 개념과 유사한 Parcelable이라는 클래스가 있다.
자세한 내용은 여기로
앱을 만들다 보면 인텐트를 통해 단순히 String, int, boolean 같은 기본 타입 뿐 아니고 커스텀 클래스나 오브젝트를 다른 컴포넌트에 전달해 줘야 할 경우가 많다. 그 경우 단순히 그냥 인텐트에 putExtra() 로는 넣어줄 수가 없다.안드로이드에서는 그런 경우를 위해 자바의 Serialization 개념과 유사한 Parcelable이라는 클래스가 있다.
자세한 내용은 여기로
2. Eclipse>Help>Install New Software
3. Work with란에 http://plugins.genymotion.com/eclipse 입력하고 엔터
4. Eclipse의 Genymotion 아이콘을 클릭하여 Genymotion 설치경로 설정
Vertical LinearLayout 내에 Horizontal LinearLayout 두 개를 두고, 상단의 Horizontal LinearLayout엔 textview 2개와 button 1개를 배치하고 하단의 Horizontal LinearLayout엔 button 2개를 배치했다.
상단의 Horizontal LinearLayout 내의 각 view의 layout_weight 값을 1:1:1로 설정하고, 하단의 Horizontal LinearLayout 내의 각 view의 layout_weight 값은 2:1로 설정했다.
그리고 상하단 Horizontal LinearLayout 내의 모든 view의 layout_width 값을 wrap_content로 설정하고 실행해보니 아래와 같이 view가 배치되었다.
상단 Horizontal LinearLayout 내 textview 두 개의 끝과 하단 Horizontal LinearLayout 좌측 button 끝이 일치할거라고 생각했는데 이상하게도 차이가 있었다. padding 값 때문에 그런가 싶어서 좌우 padding 값을 0dp로 해보았으나 동일한 결과였다.
웹서칭을 해보니 view의 layout_width 값을 0dp로 설정해야되는거 같다. 그래서 그렇게 적용했더니 아래와 같이 예상했던 결과가 나왔다.
layout_width를 wrap_content로 하면 왜 첫 번째 그림과 같이 나오는지 모르겠다. ㅡㅡ;;
혹시 이 글을 보시는 분 중에 아시는 분 있다면 댓글 부탁드립니다.
View란?
ViewGroup
Inflation이란?
아래와 같이 layout 하위에 'screenview.xml'이 있을 때
이렇게 Inflation 할 수 있다.
// Layout inflation LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.screenview, this, true);
Fragment란?
간단하게 말하면 미니 액티비티라고 생각할 수 있다. 안드로이드가 아이폰과 구별되는 가장 큰 특징은 기기마다 화면의 크기가 다르다는 점이다. 더 나은 사용성을 위해 한 화면에 서로 독립적인 인터페이스 구성요소들을 결합하는 경우도 종종 있고, 더욱이 태블릿의 경우는 화면이 크기 때문에 일반적인 안드로이드폰의 개발과는 UI 디자인 및 UI의 흐름이 달라질 수밖에 없다.
프래그먼트는 개발자가 간단하게 액티비티의 화면을 분할해서 내용을 구성할 수 있게 한다. 아래 그림은 프래그먼트의 개념도이다.
위와 같이 만들어진 프래그먼트는 태블릿에서는 하나의 액티비티 안에서 사용되며 스마트폰의 경우에는 액티비티에서 프래그먼트가 사용된다.
Activity란?
서비스(Service)란?
내용 제공자(Content Provider)란?
브로드캐스트 수신자(Broadcast receiver)란?
ANR(Application Not Responding)이란?
안드로이드 시스템은 일정 시간동안 응답이 없는 APP에 대해 ANR라 불리는 대화 상자를 사용자에게 보여줘서 방어한다.
사용자는 APP을 바로 종료 할 수도 있고 APP의 응답을 기다릴 수도 있다("Wait" button을 눌러서...).
원인