달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

안드로이드 프로그램 구조

   

   

뷰(View)

뷰(View)는 사용자와 직접 상호작용을 하는 UI를 의미합니다.

   

 

액티비티 (Activity)

  • 하나의 화면을 컨트롤하는 객체로 (어플리케이션의 하나의 화면, 폰 화면)
  • 보통 액티비티와 UI화면은 일대일 대응 관계를 갖고 시스템 혹은 사용자로부터 시작된 이벤트에 반응(처리)합니다.
  • 레이아웃을 포함하며 UI오브젝트를 추가하여 사용할 레이아웃을 정의(화면을 구성)하게 됩니다.

   

   

위젯(Widget)

TexTView, Button, EditText등 사용자의 입력을 받거나 화면에 데이터를 표시해 주는 Object

   

   

레이아웃(Layout)

액티비티들을 어떠한 방식으로 화면에 배치해 줄지를 결정해 주는 하나의 컨테이너 역할

UI오브젝트를 담고 있는 그릇역할.

   

 

인텐트 (Intent)

액티비티간의 통신 수단이며 메시지에 대한 상세한 정보를 가집니다. 예를 들어 주소록 목록 액티비티에서 편집 액티비티를 호출할 때 누구의 주소를 어떤 식으로 편집하라는 지시가 인텐트에 실려 전달됩니다.

   

 

서비스 (Service)

서비스는 주로 백그라운드에서 돌아가는 실행코드로, 일단 실행되면 휴대폰이 꺼질 때까지 돌아갑니다. 서비스는 일반적으로 사용자 인터페이스가 없습니다.

예) MP3 플레이어, 저장기능

 

   

브로드캐스트 리시버(BroadcastReceiver)

만약 애플리케이션이 전화가 오거나 문자메시지 수신과 같은 이벤트 반응시 적절하게 반응하기를 원한다면 반드시 브로드캐스트 리시버로서 등록되어 있어야만 합니다. 신호만 대기할 뿐 UI를 따로 가지지는 않으므로 신호가 오면 적절한 액티비티를 띄워 내용을 전달합니다.

   

 

컨텐트 프로바이더 (Content Provider)

다른 응용 프로그램을 위해 자신의 데이터를 제공합니다. 안드로이드는 보안이 엄격하여 다른 응용프로그램의 데이터를 함부로 액세스 하지 못하도록 되어 있습니다. 응용프로그램 간에 데이터를 공유할 수 있는 합법적인 유일한 장치가 바로 콘텐트 프로바이더입니다.

   

   

사용 가능한 구성 요소 

(1) 데이터 보관

(2) 네트워크

(3) 멀티미디어

(4) GPS

(5) 전화서비스

   

Posted by codedragon codedragon

댓글을 달아 주세요

여러 개의 아이템 중에 선택할 수 있는 ListView

정해진 데이터(배열)를 텍스트 뷰에 표시

   

강의 내용

activity_main.xml

RelativeLayout변경

Graphical Layout > Form Widgets-TextView 추가

Graphical Layout > Composite-ListView 추가

MainActivity.java

데이터를 가진 배열 생성

adapter 생성

//이벤트 소스와 이벤트 리스너 연결

//이벤트 핸들러

   

   

목록 작업 단계

  1. 배열의 데이터를 가지고 있는 adapter 생성
  2. ListView에 adapter를 등록하여 데이터를 매칭

   

new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);

this

Context 객체로 액티비티인 this를 전달

android.R.layout.simple_list_item_1

뷰를 초기화 할때 사용하는 XML레이아웃 리소스ID값

안드로이드에서 미리 정의된 레이아웃

  

items

아이템에 보여질 문자열 데이터

   

onItemClick(AdapterView<?> parent, View view, int position, long id)

AdapterView<?> parent

내부적으로 처리되는 데이터를 표현하기 위해 ?인 와일드카드형식으로 표시(오브젝트 타입을 의미)

이벤트가 발생한 리스트뷰의 정보

View view

리스트의 아이템별 개별적인 view

ListView에서 이벤트가 발생한 데이터를 표시하는 View

int position

인덱스 값, 데이터를 표시할 때의 위치값

long id

포지션값과 일치, 데이터베이스 연동시 primary key의 id가 명시됨

   

   

 

   

   

출력 결과

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

용어

설명

뷰(View)

액티비티안에 들어가는 각각의 화면 구성요소

컨트롤과 위젯이라는 이름으로 불리는 UI구성요소

즉, 사용자의 눈에 보이는 화면 구성요소 입니다.

XML레이아웃에 정의된 뷰들은 애플리케이션이 시작될 때 메모리에 객체로 만들어집니다.

프로젝트가 빌드될 때 XML레이아웃에 정의된 정보는 내부적으로 해석되어 자바코드에서 new연산자로 객체를 만드는 것처럼 동일하게 객체를 생성할 수 있습니다. 이렇게 메모리에 객체를 만드는 과정을 인플레이션이라고 합니다.

인플레이션(Inflation)

실행시점에 XML레이아웃 정보를 메모리상의 객체로 만드는 과정

위젯(Widget)

뷰 중에서 컨트롤 역할을 하는 화면 구성 요소

뷰그룹(ViewGroup)

뷰들을 여러 개 포함하고 있는 것

뷰들을 담고 있는 그릇

뷰그룹을 이용해 그 안에 들어있는 뷰들의 위치를 지정

레이아웃(Layout)

뷰그룹 중 자주 사용하는 뷰의 배치 방식을 정의한 것(그 안의 뷰들을 배치하는 역할)

위젯셀(Widget Cell)

위젯이나 뷰가 부모 컨너이너로 부터 할당 받은 공간

패딩(Padding)

뷰안의 내용물과 뷰 외곽선 상의 여백

마진(Margin)

부모 컨테이너의 외곽선과 뷰 사이의 여백

액션 아이템(Action Item)

일반적으로 메뉴는 오버플로우 메뉴 형태(아래쪽에서 표시되는 형태)로 지원되지만 ActionBar에 등록가능하며 이렇게 ActionBar에 등록된 항목

번들(번들 객체)

액티비티간에 데이터를 전달하기 위해 사용

인텐트 안에 들어 있기 때문에 putXXX( )와 getXXX( )를 통해 데이터를 넣거나 얻을 수 있습니다.

 

Posted by codedragon codedragon

댓글을 달아 주세요