직전 포스팅에서 다뤘던 Fragment를 사용하여 버튼을 누를 때마다 새로운 이미지를 띄우는 화면 전환 예제를 구현해보려고 한다. activity_main.xml 과 2개의 Fragment를 사용하며, 첫번째 fragment는 fragment_list.xml로 각 이미지를 변경하는 역할을 하는 3개의 버튼을 가지도록 구성하고 두번째 fragment는 이미지를 띄울 ImageView 1개로 구성한다. 바로 한번 들어가보자. ◎fragment_list.xml ◎ListFragment.java package com.example.fragment_ex; import android.content.Context; import android.os.Bundle; import android.view.LayoutInfla..
Fragment는 말 그대로 액티비티 위에 놓일 수 있는 부분 레이아웃을 뜻하며, 새 액티비티를 생성할 때와 동일하게 새로운 xml 파일을 만들어 제작하지만 액티비티와는 다르게 실질적인 화면 전환 없이 부분적인 레이아웃만 변경하면 되므로 가볍게 화면 전환 효과를 낼 수 있어 쓰인다. 액티비티는 시스템이 직접 제어하지만, Fragment는 액티비티 위에서 Fragment Manager로 제어한다. 액티비티 위에서 동작하기 때문에 Fragment 사이에서의 데이터 이동은 intent나 다른 객체의 도움 없이도 단순히 메서드를 만들고 호출하는 방식으로 가능하다. Fragment는 fragment xml layout 파일을 생성 후, 이를 제어할 FragmentClass.java를 생성하여 Fragment 클래..
액티비티는 처음 실행될 때 메모리에 만들어지는 과정부터 시작해서 실행과 중지, 그리고 메모리에서 해제되는 여러 과정의 상태 정보로 갖고 있으며, 이런 상태 정보는 시스템이 관리하면서 각각의 상태에 해당되는 메서드를 자동으로 호출한다. 액티비티 위에 새로운 액티비티가 생성된다면 이전에 있는 액티비티는 액티비티 스택에 보관하다가 새로 생성된 액티비티가 사라지면 다시 이전 액티비티가 동작하는 과정을 거친다. 액티비티의 대표적인 상태 정보는 다음과 같다. 상태 설명 Running 화면 상에 액티비티가 보이면서 실행되고 있는 상태, 액티비티 스택의 최상위에 있으며 포커스를 가지고 있다. Paused 사용자에게 보이지만 다른 액티비티가 위에 있어 포커스를 받지 못하는 상태, 대화 상자가 위에 있어 일부가 가려진 경..
Intent객체가 가지고 있는 putExtra메서드로 여로 타입의 부가 데이터를 넣어 다른 액티비티로 전달할 수 있다. 기본적으로 put/get Extra는 key와 value 쌍으로 데이터를 전달하지만 Object 타입의 경우, 객체 자체를 전달하는 것은 불가능하다. 따라서 Serializable 인터페이스를 구현하는 객체를 만들어 직렬화를 해준 다음 전달해야하는데, 안드로이드는 Serializable 인터페이스와 유사한 Parcelable 인터페이스를 권장한다. Parcelable 인터페이스는 Serializable과 유사하지만, 직렬화했을 때 크기가 작아 안드로이드 내부의 데이터를 전달할 때 주로 사용된다. 간단한 예제를 살펴보자. 우선, Intent에 넣어서 액티비티에 전달할 SimpleData클..
바로 이전 예제에서 Intent를 다른 액티비티를 띄우거나 기능을 동작시키기 위한 수단으로 사용했다. 즉, 무언가 작업을 수행하기 위해 사용되는 일종의 명령 또는 데이터를 전달하는데 사용했다는 것이다. android.content 패키지 안에 정의되어 있는 Intent는 우리가 만들든 앱 구성 요소 간에 작업 수행을 위한 정보를 전달하는 역할을 한다. 다른 앱 구성 요소에 Intent를 전달할 수 있는 대표적인 메서드들은 다음과 같으며, 이에 대하여는 후에 진도가 진행되면서 다룬다. startActivity() or startActivityForResult() startService() or bindService() broadcastIntent() startActivity() 는 액티비티를 화면에 띄울 ..
안드로이드 앱은 4가지의 기본 구성 요소를 가지고 있으며, 그 종류는 다음과 같다. 액티비티 서비스 브로드캐스트 수신자 내용 제공자 이 4가지 구성요소는 앱을 만들어 단말에 설치했을 때, 안드로이드 시스템이 이 요소에 대한 정보를 요구하기 때문이다. 여기서 지금 다뤄볼 것은 화면을 담당하고 있는 액티비티이다. 안드로이드에서 필요에 따라 화면을 띄우거나 닫는 과정들은 모두 액티비티를 전환하는 과정이다. 즉, 액티비티에 대한 개념이 정확하게 잡혀있어야 화면 전환을 이해할 수 있다는 것이다. 우선 새 액티비티를 만들고, 버튼을 눌러 해당 액티비티를 띄운 뒤 다시 닫는 간단한 예제를 한번 보면서 이해해보자. 프로젝트를 생성하고, app 디렉토리에 new를 클릭하여 다음과 같이 액티비티를 하나 생성해준다. 액티비..
지금까지의 다룬 예제들은 1개의 activity_main.xml 레이아웃을 MainActivity.java가 어플리케이션을 실행하면서, onCreate() 메서드 내부에 호출해놓은 setContentView() 메서드를 사용하여 res 하위에 있는 activity_main.xml을 호출하여 화면에 보여주었다고 이해할 수 있다. 즉, setContentView(R.layout.activity_main);을 호출하여 레이아웃 파일을 객체화하여 사용한다는 것이다. 하지만, setContentView() 메서드는 Activity의 전체 화면(메인 레이아웃)을 설정하는 역할만을 수행한다. 부분 레이아웃을 만들어 화면 한 부분에 띄우려고 할 때에는 사용이 불가능하다는 이야기이다. 이럴 때 부분 레이아웃을 객체화하기..
프로세스의 진행 상태를 중간 중간 보여줄 수 있는 가장 좋은 방법 중 하나가 Progress Bar이다. 안드로이드는 일반적으로 아래의 두 가지 Progress Bar를 사용한다. 속성 설명 막대 모양 작업의 진행 정도를 알려줄 수 있도록 막대 모양으로 표시 원 모양 작업이 진행 중임을 알려준다. 원 모양이 반복적으로 나타난다. Layout.xml에 Progress bar를 추가할 때는 태그가 사용되는데, Progress bar가 갖는 값의 최대 범위는 max 속성으로 설정하고, 현재 값은 progress 속성으로 설정한다. 바로 한 번 예제를 확인해보자. ◎activity_main.xml ◎MainActivity.java package com.example.progressbarex; import and..
Toast와 Snackbar 가 사용자에게 간단한 알림을 띄우는 용도였다면, 알림 대화상자는 confirm과 같이 예, 아니오로 사용자의 응답을 처리하는 용도로 사용된다. 바로 한번 확인해보자. ▶Dialog 띄우기 ◎activity_main.xml ◎MainActivity.java package com.example.sampledialog; import android.content.DialogInterface; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppC..
간단한 메시지를 보여줄 때, Toast 대신 Snackbar를 사용하는 경우도 있다. Snackbar는 Android내장 라이브러리가 아닌,외부 라이브러리이므로 Snackbar가 들어있는 Material 라이브러리를 받아야한다. 사용 방법은 Toast와 매우 유사하니 간단하게 화면에 띄워보는 예제만 해보자. ▶Snackbar 띄우기 ◎activity_main.xml ◎ActivityMain.java package com.example.toast_ex; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget..
- AsyncStorage
- 인천 구월동 이탈리안 맛집
- redux-thunk
- redux
- Promise
- 맛집
- Async
- 이탈리안 레스토랑
- 인천 구월동 맛집
- react-native
- 정보보안기사 #실기 #정리
- react
- 파니노구스토
- await
- javascript
- Total
- Today
- Yesterday