달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'Android 이야기'에 해당되는 글 8

  1. 2010.04.01 내 생각 안드로이드 1
2010. 4. 1. 15:19

내 생각 안드로이드 Android 이야기2010. 4. 1. 15:19

내 생각 안드로이드

 

MD5 FINGERPRINT :


goole.api

사용자 키 :

0w6uEcs3ZxxxxxxxxxxxxxxxxxdpJy1fJk3Q

 

avd이동시키는 방법

Android move avd –n test –p c:\APIx

test : avd이름

c:\APIx : 이동시킬 경로

 

sd카드 생성하기

cmd명령창에서 android 다운받아 압축 푼 폴더로 이동한다.

명령어창에 mksdcard 128M sdcard.iso를 입력한다.

이클립스에서 run->run configration에 target탭에서 additional...박스란에 sdcard가 있는

위치를 입력한다.

-sdcard c:\sdcard.iso

ddms로 이동 sdcard폴더 클릭 후 push a file onto ... 스피드바에 있는 아이콘 클릭

넣고 싶은 파일 선택(모두 영어로 되어있어야 한다)

 

application : 다수의 activity로 구성

 

activity 하나당 layout하나

setContentView(R.layout.xxx)

여기서 정보를 가져온다

 

그다음은 자바문법대로..

 

인텐드

Activity끼리 연결해주는 역할

Intent intent = new Intent(호출하는 액티비티 A, 호출할 액티비티 B);

 

A가 B를 호출하면 B로 이동해라라는 실행문장은

startActivity(intent);

 

새로운 Activity 생성하기

-manifest.xml에서 App탭에서 Activity추가

-Activity -> Intent ->Category

-Category에서 android.xxxx.launcher로 설정

-Activity에서 name클릭하면 클래스파일이 생성된다

-layout등록하기

-new -> File -> xxx.xml을 생성

-생성시 파일이름은 모두 소문자이어야하고, 숫자허용

-setContentView에서 동작하면 끝

이름

클래스

개요

리니어레이아웃

LinearLayout

수평방향 또는 수직방향에 자손 뷰를 배치함.

요소가 들어가지 않을 때는 스크롤바를 표시할 수 있음

절대 레이아웃

AbsoluteLayout

픽셀 지정의 절대치로 자손 뷰의 위치를 지정함

상대 레이아웃

RelativeLayout

자손 뷰 끼리의 상대 관계나 부모 뷰와의 관계로 배치함

프레임 레이아웃

FrameLayout

왼쪽 위에 하나의 뷰를 배치하는 가장 기본적인 레이아웃

테이블 레이아웃

TableLayout

테이블 형식으로 뷰를 배치함. 보통 내부에 테이블 행 레이아웃을 지정함

테이블행 레이아웃

TableRow

테이블 행 안에 셀을 배치함. 셀에는 임의의 뷰를 지정할 수 있음

그리드 뷰

GridView

매트릭스 상에 이미지를 배치

갤러리

Gallary

리스트에서 지정된 이미지를 수평방향으로 스크롤하면서 표시함

리스트 뷰

ListView

스크롤 가능한 리스트

스크롤 뷰

ScrollView

수직방향으로 요소를 스크롤

스피너

Spinner

1행의 텍스트 박스 내에 지정한 리스트의 하나를 표시함. 수평방향 또는 수직방향으로 요소를 스크롤함

서페이스 뷰

SurfaceView

이미지그림 용의 뷰

탭 호스트

TabHost

Tab에 의해 표시를 변환

뷰 프리퍼

ViewFlipper

슬라이드 쇼와 같이 자동적으로 요소를 변환

 

fill_parent : 부모의 폭이나 높이에 맞춰 가능한 크게 함

wrap_content : 내용의 크기만큼 생성(최소한의 크기로 함)

수치 : 크기를 수치로 지정함. 단위는 픽셀 수 등

 

Dialog

다이얼로그(android.app.Dialog)는 Activity상에 작은 윈도우를 표시하여 유저에게 통지하거나 확인을 요구하기 위한 컴포넌트입니다. 게임 결과나 경고 등을 표시하는데 사용합니다

 

다이얼로그는 뷰클래스를 계승하고 있지 않기 때문에 레이아웃의 리소스에서는다이얼로그는 생성할 수 없습니다. 보통은 프로그램에서 생성합니다. 대표적인 다이얼로그의 종류

클래스

개요

AlertDialog

아이콘, 메시지, 3개의 버튼을 가짐

DatePickerDialog

Calendar에서 날짜를 취득함

ProgressDialog

실험 상태를 통지하는 프로그래스 바

TimePickerDialog

시각을 취득함

ZoomDialog

줌의 레벨을 취득함

 

단순히 액티비티를 호출할 때에는 startActivity(Intent )를 사용했지만, 액티비티를 호출한 후 결과값을 받기 위해서는 다른 메소드를 사용해야 한다. 바로 startActivityForResult(Intent I, int requestCode)이다

 

public void startActivityForResult(Intent intent, int requestCode)

호출당하는 액티비티로부터 데이터를 넘겨받기 위해 사용합니다.

내 생각 : Intent I = new Intent(this, Information.class);

여기서 Information.class로부터 데이터를 넘겨 받기 위해 startActivityForResult를 사용.

intent - 인텐트

requestCode - 이 액티비티를 호출하는 액티비티가 여러 개가 있을 경우, 어떤 액티비티가 호출했는지를 알기 위해 사용

 

intent.putExtra(String name, _value)

name이라는 이름을 가지는 데이터를 인텐트에 첨가합니다.

 

void onActivityResult(int requestCode, int resultCode, Intent data)

startActivityForResult로 호출한 액티비티가 종료되었을 때 호출됩니다.

 

UI상태를 저장한다구요? 그걸 왜 저장하는데요? 그럴 필요가 있나요?

- 네, 그렇습니다. 안드로이드 액티비티의 라이프사이클을 아신다면, UI 저장은 필수요소라는걸 쉽게 느끼실 수 있을겁니다. 안드로이드 액티비티의 라이프사이클에 대해 잘 모르시는 분은 2008/11/30 - [안드로이드 이야기/안드로이드 입문] - #03. Hello, Android!로 배우는 기초 - (3) Activity 집중공략 을 참조하세요.

 

간단하게 말하면, 안드로이드가 모바일 기기를 주 목적으로 하다보니, 메모리가 부족할 경우 메모리에 올라와있는 것들을 지맘대로 종료시킬 가능성이 허다합니다. 만약, 메시지를 입력하다가 전화가 와서 전화를 받았는데 마침 다른 어플리케이션들이 너무 많이 실행되고 있어서 메시지 어플리케이션이 강제종료되었다고 생각해봅시다. 지금까지 입력했던 메시지는 다 날아가버리는 걸까오? - 그래선 안 됩니다. 암.

 

그리고, 어플리케이션 중 특정 설정을 저장해야 하는 경우가 있습니다. 메신저를 예로 들면 자동 로그인, 비밀번호 저장 여부 설정 등이 되겠지요? 이러한 설정들도 Shared Preferences를 이용하여 저장됩니다.

이렇게, 액티비티 및 어플리케이션이 메모리 부족 등에 인해 종료된 후, 사용자가 다시 그 어플리케이션을 실행시켰을 때 종료되기 전 모습 그대~로 다시 복구시켜주는 역할을 바로 Shared Preferences를 이용해 해줄 수 있습니다.

이 어플리케이션의 목적, SharedPreferences을 사용하는 목적은 "액티비티를 종료시켜도 사용자는 모르게" 하는 것입니다.

액티비티 라이프사이클에 따라서, 액티비티가 종료될 때 당시 UI상태를 기억하고 있다가 사용자가 다시 그 액티비티 (어플리케이션)을 실행시킬 때 저장된 상태를 그대~로 불러와서, 마치 사용자는 "아무 일도 일어나지 않은 것처럼" 계속 작업을 할 수 있죠.

 

ListView는 ListView 하나로 이루어지는 것이 아니라 리스트뷰에 표시할 항목을 담고 있는 리스트 객체, 리스트 객체의 데이터를 리스트뷰에서 표시할 수 있게 해주는 어댑터, 최종적으로 화면에 리스트를 표시해 주는 리스트뷰(ListView)로 구성됩니다.

 

이 세 구성요소 중 가장 중요한 역할을 하는 것은 단연 어댑터(Adapter)라고 할 수 있습니다.

어댑터는 리스트 객체를 리스트뷰에서 표시해주는 기능, 즉 리스트 객체의 내용과 리스트 항목의 레이아웃을 연결시켜주는 역할을 합니다. 따라서, 어댑터가 없다면 일단 리스트 객체의 데이터를 리스트뷰에 표시하는 것은 불가능합니다.

 

getView()메소드는 리스트 전체의 레이아웃을 책임지는(?) 것이 아니라, 리스트 각 항목에 대한 레이아웃만을 책임집니다

'Android 이야기' 카테고리의 다른 글

'10.04.06 Story  (0) 2010.04.06
'10.04.05 story 안드로이드 2주차 과제  (0) 2010.04.05
'10.04.05 Story  (0) 2010.04.05
'10.04.04 Story  (0) 2010.04.05
내 생각 안드로이드 이야기2  (0) 2010.04.05
:
Posted by НooпeУ


Code Start Code End