no image
4장 태스크 관리, 생명주기
앱이 어떻게 동작할지 결정하는 데 사용된다.프로세스는 독립적인 하나의 상자와 같아서 다른 프로세스와 정보를 공유할 수 없다.즉 하나의 프로세스에서 다른 프로세스를 띄우려면 시스템의 도움이 필요함. 이 때 시스템에서 액티비티의 각종 정보를 저장해두기 위해 태스크를 만든다. 테스크의 흐름 관리 : 프로세스 실행 -> VM(Virtual Machine) 생성 -> 앱 실행 1. activity_main.xml을 다음과 같이 만들어준다. 2. MainActivity 코드를 작성한다.package com.example.chapter4_5;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundl..
2024.12.07
no image
4장 플래그와 부가 데이터
같은 액티비티에 대해 인텐트를 두번 보내면 액티비티가 중복되는데 이를 막기 위해선 플래그를 사용하면 된다.(먼저 액티비티는 스택 구조로 처리된다는 것을 알아두면 이해가 쉽다)  FLAG_ACTIVITY_SINGLE_TOP : 액티비티 A를 생성하는데 이미 생성된 액티비티 A가 있을 경우 그 액티비티를 재사용한다. (액티비티를 재사용하는 경우 onCreate 메서드가 호출되지 않기 때문에 onNewIntent 메서드를 재정의해서 인텐트 객체만 전달 받을 수 있다.)FLAG_ACTIVITY_NO_HISTORY : 처음 이후에 실행된 액티비티는 액티비티 스택에 추가되지 않음. 시스템 [Back] 키를 누를 시 항상 맨 처음에 실행되었던 액티비티가 바로 보이게 됨. (ex. 알람 시스템. 알람이 여러번 발생해도..
2024.12.05
no image
4장 인텐트
인텐트는 앱 구성 요소 간에 작업 수행을 위한 정보를 전달하는 역할을 한다.인텐트의 기본 구성 요소는 액션(Action)과 데이터(Data)이다.액션과 데이터를 사용하는 대표적인 예ACTION_DIAL : 주어진 전화번호를 이용해 전화걸기 화면을 보여줌ACTION_VIEW : URL 유형에 따라 VIEW 액션이 다른 기능을 수행함. (전화걸기 화면 등)ACTION_EDIT ~~/x : 전화번호부 DB 정보 중 ID가 x인 정보를 편집하기 위한 화면을 보여줌ACTION_VIEW : 전화번호부 DB의 내용을 보여줌 인텐트 클래스에 정의된 액션은 많이 있는데, 그 중 ACTION_MAIN이랑 ACTION_EDIT을 가장 많이 사용한다고 함. 인텐트에 포함된 데이터의 포맷에 따라 적절한 액티비티를 자동으로 띄워..
2024.12.03
no image
4장 화면전환
실습- 부분 화면 구현 -- 팝업 화면 구현 - 인플레이션(Inflation) : XML 레이아웃의 내용이 메모리에 객체화되는 과정XML 레이아웃은 앱이 실행되는 시점에 메모리에 객체화되기 때문에, setContentView 메서드가 호출되기 전에 XML 레이아웃에 정의된 객체를 참조하면 오류(NulllPointerException)가 발생한다. setContentView(R.layout.파일명)R은 res 폴더를 의미한다. res/layout 폴더 안에 있는 파일을 가져오겠다는 뜻. setContentView는 화면에 나타낼 뷰를 지정하거나, 레이아웃 내용을 메모리에 객체화하는 두가지 역할을 수행한다.  setContentView는 화면 전체만 설정할 수 있어서 인플레이터를 사용해야한다.getSyste..
2024.12.01
no image
도전!6 - 시크바와 프로그레스바 보여주기
첫 화면은 기본값 50에서 시작. 시크바를 드래그하면 프로그레스바와 텍스트뷰가 같이 바뀐다. 1. 배치하기SeekBar, ProgressBar, TextView를 배치한다.시크바와 프로그레스바의 max 값, progress 값을 설정해준다. (max=100, progress=50으로 설정함)텍스트뷰는 테두리를 넣고 싶어서 drawable에 셰이프 드로어블 파일을 만든 뒤 background로 적용시켰다. 2. MainActivity.java 작성하기package com.example.doitmission_06;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInst..
2024.11.29
no image
도전!5 - 두 종류의 버튼 모양 만들기
1. 버튼 배치2. themes.xml 수정 3. 버튼에 적용시킬 drawable 파일 2개 만들기. 적당히 둥근 모서리의 네모를 만들고 싶다면 radius=5dp 정도가 적당하다. 4. activity_main.xml 코드를 수정한다.버튼1의 코드에선 폰트를 주황색으로 바꿈버튼2의 코드에선 폰트를 하얀색으로 바꿈 끝.간단스
2024.11.29
no image
3장 프로그레스바 (진행상태 표시)
프로그레스바의 종류막대 모양 : 진행 정도를 알려줌원 모양 : 진행 중임을 알려줌 (반복적으로 표시. ex. loading 창)  태그max : 최대 범위progress : 현재 값 void setProgress(int progress)정수값을 받아 현재 값으로 설정함.void incrementProgressBy(int diff)현재 설정되어 있는 값을 기준으로 값을 더하거나 뺄 때 사용. requestWindowFeature(Window.FEATURE_PROGRESS);타이틀바에 프로그레스바를 표시하면 화면에서 차지하는 공간을 줄일 수 있어서 좋다.이 경우엔 범위를 따로 지정할 수는 없다. (디폴트 0~10000)  막대형 프로그레스바 + 원형 프로그레스바 추가하기1. 레이아웃을 만들어준다. Widge..
2024.11.28
no image
3장 알림 대화상자 보여주기 (AlertDialog)
예, 아니오, 취소 버튼을 누르면 누른 버튼에 따라 배경의 문구가 바뀐다. 먼저 레이아웃 대충 만들어주고.. 컴포넌트 id만 잘 확인 해준다.package com.example.chapter3_7;public class MainActivity extends AppCompatActivity { TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.textView); ..
2024.11.28
no image
3장 토스트와 스낵바 (냠냠)
- 토스트 (메소드)- 토스트 모양과 위치 바꿔서 보여주기스낵바 띄우기토스트(Toast)이삭 토스트는 역시 기본 햄치즈가 제일 맛있다. Toast.makeText(Context context, String message, int duration).show();Context 객체는 일반적으로 Context 클래스를 상속한 액티비티를 사용할 수 있다. (보통 this가 들어감)보여주려는 메시지(message)와 디스플레이 시간(duration)를 파라미터로 전달함. public void setGravity(int gravity, int xOffset, int yOffset)gravity 값은 정렬 위치를 지정 (ex. Gravity.CENTER) public void setMargin(float horizo..
2024.11.28