안드로이드 어플 42

안드로이드 - 프래그먼트 상태 저장하기

프래그먼트에 관한 내용은 안드로이드-프래그먼트-사용-간단-예제 를 참고하자. 이번에는 스마트폰의 상태 변경이나 화면이 가로로 될 때 자신의 데이터 저장을 해보자 이번에도 다음과 같이 3개의 파일을 만들어야 됨을 잊지 말자. counterfragment.xml 파일 기본적인 프래그먼트를 구성하는 UI 파일 save_fragment_state.xml 프래그먼트를 실제 사용하는 부분 SaveFragmentState.java package com.example.savefragmentstate; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; imp..

안드로이드 - 한 화면에 여러 개의 프래그먼트 만들기

프래그먼트에 관한 내용은 안드로이드-프래그먼트-사용-간단-예제 를 참고하자. 이번에는 한 화면에 2개의 프래그먼트를 만들어 보는 예제이다.. 프로젝트 익스플로러에서 다음과 같이 3개의 파일을 생성해야 함을 잊지 말자. counterfragment..xml 파일은 실제 프래그먼트를 구성하는 UI파일이다. activity_two_fragment1.xml 여기서 실제 프래그먼트가 2개라는 것을 명시해주는 UI이다. TwoFragment1.java package com.example.ch20_twofragment; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutI..

안드로이드 - 프래그먼트 사용 간단 예제

프래그먼트 간략 설명은 다음 링크를 참조 하자. 커니의 안드로이드 프래그먼트 설명 프래그먼트 생명주기 설명 간단한 예제에 앞서 프로젝트 익스플로러를 보자 아래와 같이 자바파일과 xml파일을 2개로 구성함을 잊지 말자. counterfragment.xml 파일 fragment_test.xml FragmentTest.java package com.example.ch20_fragment_ex1; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; i..

안드로이드 - 윈도우 관리자 활용하기

윈도우 관리자는 안드로이드 프레임워크를 구성하는 주요 모듈로 윈도우를 관리한다. 다음의 호출문으로 구할 수 있다. getSystemService(Context.WINDOW_SERVICE) 윈도우 관리는 대부분 시스템 내부에서 알아서 수행되므로 공개된 기능은 많지 않다. 다음 메소드는 윈도우가 실행되는 화면에 대한 정보를 구한다. Display getDefaultDisplay() Display 클래스는 장비의 화면 폭이나 높이, 방향, 갱신 주기 등의 정보를 제공한다. 다음 메소드는 ViewManager 인터페이스로부터 상속받은 것이며 윈도우에 개별 뷰를 추가하거나 삭제한다. void addView(View view, ViewGroup.LayoutParams params) void removeView(Vi..

안드로이드 - LayoutInflater를 활용한 레이아웃 겹치기

윈도우는 빈 채로 생성되며 빈 윈도우 안에 레이아웃을 채워 넣어 UI를 구성하는데 이때는 다음 메소드를 호출 한다. void setContentView(int layoutResID) void setContentView(View view, [ViewGroup.LayoutParams params]) void addContentView(View view, ViewGroup.LayoutParams params) 다음 예제는 2개의 xml파일을 겹쳐서 보여주는 예제이다. overlay1.xml overlay2.xml Overlay.java package com.example.overlay; import android.app.Activity; import android.content.Context; import a..

안드로이드 - 타이틀 바 조작하기 (풀스크린 만들기)

Window 클래스는 윈도우를 표현하며 액티비티의 모양과 동작에 대한 여러가지 옵션을 제공한다. 윈도우 객체는 getWindow 메소드를 호출하여 언제든지 얻을 수 있으며 이 객체를 통해 여러가지 조작을 한다. boolean Window.requestFeature(int featureId) boolean Activity.requestWindowFeature(int featureId) 위의 메소드를 활용해서 윈도우의 확장 기능을 활성화 할 수 있다. 확장기능 플래그는 다음과 같다. 기능 설명 DEFAULT_FEATURES 기본 기능 FEATURE_CONTEXT_MENU 컨텍스트 메뉴를 쓸 수 있다. 디폴트로 이 기능이 선택되어있음 FEATURE_CUSTOM_TITLE 커스텀 타이틀 바를 사용한다. FEAT..

안드로이드 - Application 객체를 이용한 전역 변수 만들기

프로세스의 아래에는 단 하나의 유일한 Application 객체가 있고 그아래 컴포넌트인 서비스, 브로드캐스트 리시버, 액티비티, 콘텐트 프로바이더로 구성된다. Application 클래스가 모든 컴포넌트보다 우선적으로 생성되고 유일한 객체만 생성되므로 전역 변수를 두기에는 제일 좋은 곳이다. 그리고 Application 객체의 멤버는 프로세스의 어디에서나 참조할 수 있다. void onCreate() void onTerminate() void onConfigurationChanged(Configuration newConfig) void onLowMemory() onCreate는 응용프로그램이 실행된 직후 호출된다. 다른 컴포넌트인 서비스, 브로드캐스트 리시버, 액티비티, 콘텐트 프로바이더보다 먼저 실행..

안드로이드 - NumberPicker를 이용한 숫자 선택하는 위젯 만들기

넘버 피커는 일정한 범위에 있는 숫자 값 중에 하나를 선택해주는 위젯이다. 날짜나 시간 선택기와 비슷한 모양을 하고 있고 입력 필드를 롱터치해서 직접 값을 입력할 수도 있다. void setMinValue(int minValue) void setMaxValue(int maxValue) void setValue(int value) setMinValue로 범위의 최소값을 지정하고 setMaxValue로 최대값을 지정한다. 그리고 setValue에서 최대값을 넘어가는 것을 지정했다면 자동적으로 최대값이 바뀌게 된다. void setWrapSelectorWheel(boolean wrapSelectorWheel) 위 메소드는 범위가 1에서 10일 때 10을 초과하면 다시 1로 갈껀지 아니면 10에서 멈출건지를 나..

안드로이드 - DatePicker 위젯을 이용한 날짜 입력 받기

사용자로부터 날짜를 쉽게 입력 받으려면 DatePicker 위젯을 사용한다. 년, 월, 일을 각각의 버튼으로 보여주고 아래위의 증감 버튼을 눌러 값을 조정한다. 그리고 크기를 변경해봐야 무의미해서 wrap_content로 지정한다. 속성 설명 startYear, endYear 선택 가능한 년도의 범위를 지정한다. minDate, maxDate 선택 가능한 날짜의 범위를 지정한다. calendarViewShown 달력을 보여줄 것인지를 지정한다. 디폴트는 true이다. spinnersShown 날짜를 선택하는 스피너를 보여줄 것인가를 지정한다. 날짜를 설정하거나 조사할 때는 다음 메소드를 호출한다. void updateDate(int year, int monthOfYear, int dayOfMonth) i..

안드로이드 - 시간을 더욱 세련되게 표현하는 시계 위젯 만들기

안드로이드에서 제공하는 AnalogClock은 시간을 좀더 멋있게 표현할 수 있는 위젯이다. 레이아웃에 배치하면 알아서 잘 동작하기 때문에 예제는 간단하다. 다음은 XML파일이다. AnalogClock과 DigitalClock 위젯만 배치했다. activity_test_clock.xml ClockTest.java package com.example.ch13_clocktest; import android.app.Activity; import android.os.Bundle; public class ClockTest extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan..

반응형