안드로이드 뷰의 getWidth 메소드와 getMeasuredWidth 메소드의 차이를 정리하고자 합니다. 본 메소드의 차이점을 명확하게 이해하기 위해 EditText를 활용해보겠습니다. 커스텀 레이아웃에 EditText를 넣고, 레이아웃의 width 값은 wrap_content로 EditText의 가로폭에 맞춥니다. 그러면 EditText 내부의 값이 바뀔 때마다 커스텀 레이아웃의 width 값이 달라집니다. 이때 값이 바뀌고나서 바뀐 width값을 가져오는 과정을 보면 두 메소드의 차이를 명확하게 이해할 수 있습니다. 사용한 코드와 레이아웃은 현재 진행중인 개인프로젝트에 사용된 소스코드의 일부입니다. 커스텀 레이아웃의 xml 파일은 다음과 같습니다. EditText의 값이 바뀔 때마다 변경된 커스텀 ..
Constraint Layout을 동적으로 생성한 후에 동적으로 뷰를 추가해보겠습니다. 이걸 해보겠다고 8시간을 구글링 했는데 결국 스택오버플로우에서 답을 찾았습니다. (앞으로 구글링은 영어로 해야하려나 봅니다...ㅋㅋ) stackoverflow.com/questions/45263159/constraintlayout-change-constraints-programmatically ConstraintLayout: change constraints programmatically I need help with ConstraintSet. My goal is to change view's constraints in code, but I cant figure out how to do this right. I hav..
본 게시글은 'Do It! 안드로이드 프로그래밍 개정7판' / '단계별로 배우는 안드로이드 프로그래밍' 두 권의 교재를 통해 학습한 내용을 스스로 정리하는 목적으로 작성한 게시글 입니다. *프래그먼트 내용은 '단계별로 배우는 안드로이드 프로그래밍'에는 없는 내용입니다. Fragment, 우리말로 '파편' 이라는 뜻이다. 안드로이드에서 프래그먼트는 '부분화면'을 만드는데 사용된다. 또 각각의 프래그먼트는 액티비티처럼 독립적이어서 따로 관리할 수 있다. 프래그먼트는 반드시 액티비티 '위에' 존재해야한다. 액티비티로 만든 화면을 '프래그먼트'라는 부분 단위로 쪼개 관리하는 것이기 때문이다. 프래그먼트가 동작하는 시점은 메모리에 생성된 시점이 아닌, 액티비티 위에 존재하게된 시점이다. 프래그먼트는 '프래그먼트매..
본 게시글은 'Do It! 안드로이드 프로그래밍 개정7판' / '단계별로 배우는 안드로이드 프로그래밍' 두 권의 교재를 통해 학습한 내용을 스스로 정리하는 목적으로 작성한 게시글 입니다. Do It 안드로이드 프로그래밍의 '도전! 08'을 해결해보고자 한다. 우선 로그인 화면, 메인메뉴 화면, 서브메뉴 화면을 만들어 주었다. 로그인 화면에서 로그인 버튼을 눌렀을 때 메인메뉴로 갈 수 있게 리스너를 등록한다. 이때 아이디와 비밀번호 모두 입력이 되어 있는지 체크해야 한다. public class MainActivity extends AppCompatActivity { public final int LOGIN = 101; EditText editTextId, editTextPW; @Override prote..
본 게시글은 'Do It! 안드로이드 프로그래밍 개정7판' / '단계별로 배우는 안드로이드 프로그래밍' 두 권의 교재를 통해 학습한 내용을 스스로 정리하는 목적으로 작성한 게시글 입니다. Do It! 안드로이드 프로그래밍 개정 7판을 읽으면서 느낀 점은 이것 저것 알려주는 내용이 많은 건 좋은데, 아직 설명도 제대로 안한 뒷 내용을 끌어와서 설명하다보니 이해도 제대로 못한 채로 책 속 코드만 그대로 따라서 치고 있는 나를 보게 된다. 그 코드에 대한 설명이 제대로 되지 않다보니 이해는 안됐지만 하라는 대로 했더니 책에 나온 대로 결과가 나왔어요! 짠! 이럴 때가 있다. 개인적으로 이번 인텐트 챕터에서 그 문제점이 제일 와닿았다. 큰 흐름도를 보고나서, 대충 어떤 식으로 진행이 될지를 파악한다음 보면 더 ..
본 게시글은 'Do It! 안드로이드 프로그래밍 개정7판' / '단계별로 배우는 안드로이드 프로그래밍' 두 권의 교재를 통해 학습한 내용을 스스로 정리하는 목적으로 작성한 게시글 입니다. 인텐트(Intent) : 개발자의 의도(intent)가 들어간, 앱 구성요소가 해야 할 작업을 시스템에 요청하는 자바 객체. 안드로이드의 구성요소 중 '액티비티', '서비스', '브로드캐스트 수신기'는 인텐트에 의해 시작된다. Intent intent = new Intent(); // intent 객체 생성 // ... 중략 ... startActivity(intent); // 액티비티의 실행을 시스템에 요청 startService(intent); // 서비스의 실행을 시스템에 요청 sendBroadcast(intent..