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
no image
3장 이벤트 처리(방향 전환) / 메소드 재정의는 Ctrl+O!
방향 전환에 따라 가로, 세로 레이아웃을 보여줘야한다.현재 디폴트로 세로 레이아웃이 나오므로, 가로 레이아웃을 만들어주겠다. 1. app > res > New - Android Resource Directory로 새 폴더를 만들어준다. 2. 폴더의 Resource type을 layout으로 설정한 다음, 폴더명을 'layout-land'로 설정한다.이 이름으로 설정해야 단말을 가로 방향으로 돌릴 때 이 폴더 안에 있는 레이아웃 파일을 우선적으로 적용하기 때문이다. 프로젝트 창에서 Andoird에서는 해당 폴더가 보이지 않으니, Project로 바꾼 뒤 app > src > main > res에 들어가면 있다. 3. layout 폴더의 activity_main.xml 파일을 복사하여 layout-land ..
2024.11.26
no image
3장 이벤트 처리(터치, 제스처, 키)
- 대표적인 이벤트 -- 터치 이벤트 -- 제스처 이벤트 -- 키 이벤트 -    위임 모델(Delegation Model) : 이벤트를 객체에 전달한 후 이후의 처리 과정을 버튼에 위임하는 이벤트 처리 방식.각각의 이벤트를 처리할 수 있는 리스너(Listener) 인터페이스를 등록할 수 있도록 함. 대표적인 이벤트- 터치 이벤트 : 화면을 손가락으로 누를 때 발생- 제스처 이벤트 : 터치 이벤트 중에서 일정 패턴(ex. 스크롤)으로 구분되는 이벤트- 키 이벤트 : 키패드나 하드웨어 버튼을 누를 때 발생- 포커스 : 뷰마다 순서대로 주어지는 포커스- 화면 방향 변경 : 화면 방향(가로/세로)이 바뀜에 따라 발생 터치 이벤트다음과 같은 레이아웃을 만들었다. 일단 view, scrollView만 활용한다. ..
2024.11.26
에러
목차- AVD 에러 -- 그런 id는 없는데요? 에러 -  개열받는다.공부한 거 시뮬 돌리는 것보다 AVD 에러 기다리는데 시간을 많이 쏟는 것 같다. 어떻게 대처했는지 작성.. AVD is already running, AVD already Terminated 등의 에러가 뜨면 아래와 같이 하면 해결된다.C > 사용자 > amye > .android > AVD > 해당 AVD 폴더 내에서 확장자가 .lock인 폴더&파일을 모두 지워준다.만약 ~~에서 실행중이라 지울 수 없다고 하면 Ctrl+Shift+Esc로 작업관리자 열어서 qemu-system-x86_64.exe 를 작업 중지 시키고 지우면 된다. 안드로이드 스튜디오 AVD is already running 오류 해결하기안드로이드 에뮬레이터에 문제..
2024.11.25