계산기 앱의 UI를 완성해보도록 합니다. 우선 계산된 화면이 입력되는 부분과 키패드 부분 이렇게 2가지로 나뉘게 됩니다. 계산 화면은 콤포넌트로 완성하고, 키패드 부분은 으로 완성할 것입니다. 아래는 화면이 입력되는 부분입니다. app:layout_constraintVertical_weight 속성으로 화면과 키패드 간의 비율을 설정할 수 있습니다. 키패드를 만들기 위한 뷰로 Table Layout을 사용합니다. 아래와 같이, app:layout_constraintVertical_weight="1.5"로 정의하여, 화면 비율이 1과 1.5로 나뉘도록 합니다. app:layout_constraintTop_toBottomOf="@id/topLayout"고 같이, 해당 레이아웃의 윗 부분이 화면 레이아웃의 아..
이번에는 비밀번호를 입력하고 넘어가는 노트 페이지를 만들어보도록 하겠습니다. 우선 노트페이지를 위한 액티비티를 아래와 같이 생성해줍니다. 액티비티에 들어갈 레이아웃도 생성하도록 합니다. 아래 코드와 같이, 테두리를 지닌 하얀색 배경의 EditText 뷰를 추가합니다. EditText 뷰는 노트 기능을 할 것입니다. EditText 뷰의 폭과 높이는 0으로 지정해, Constraint Layout과 맞춰주고, Constraint Top, Bottom, Start, End를 모두 부모 크기로 맞춰줍니다. Gravity 속성 또한 Start 또는 Top으로 주어서, 글자를 쓸 때 상단 왼쪽에서 시작될 수 있도록 정의합니다. 이후, 아래와 같이 액티비티를 레이아웃과 연결시켜줍니다. class NoteActivi..
마이노트에서 사용될 비밀번호 기능을 구현해봅니다. 비밀번호를 저장하고 수정하여, 노트를 나중에 노트를 열 수 있도록 구현할 예정입니다. 기존에 그린 UI 내에서 NumberPicker, Button 등의 뷰 콤포넌트(View Component)를 액티비티에 연결하여 실제 사용할 수 있도록 MainActivity에서 작업합니다. 아래와 같이 액티비티 내에서 연결할 NumberPicker를 선언해줍니다. lazy init을 통해서 각 NumberPicker들을 초기화해주도록 합니다. 초기화를 위해 apply를 함수를 사용했는데, 해당 함수는 this로 NumberPicker에 접근할 수 있습니다. class MainActivity : AppCompatActivity() { private val numberP..
비밀번호를 설정하여 글을 작성할 수 있는 노트 앱 만들기 프로젝트입니다. 안드로이드에서 프로젝트 생성 후, UI 제작을 위해 main_activity.xml 파일에서 작업을 진행합니다. 아래와 같이 레이아웃은 Constraint Layout을 사용할 계획입니다. 이후로 레이아웃 안에, 텍스트뷰와 버튼 2개, NumberPicker를 활용할 것입니다. 텍스트뷰 코드는 다음과 같습니다. 텍스트뷰에서 폰트를 바꿀 경우, 원하는 폰트 파일(.ttf)을 다운받으시고, 리소스 폴더에 폰트 폴더 생성 후, 해당 폴더에 파일을 넣어주시면 됩니다. 폰트를 사용하려면, android:fontFamily="@font/new_font" 라인처럼, fontFamily로 원하는 폰트를 불러오면 됩니다. NumberPicker, ..
1. 업무 삭제 기능 먼저, 삭제 기능을 담당하는 함수를 정의합니다. 업무 추가 기능과 마찬가지로 notifyDataSetChanged( )를 사용해 변동 사항을 어댑터로 보내야 합니다. 삭제를 담당하는 기능은 remove 메소드를 통해서 이루어집니다. private fun deleteTodo(todo: Todo){ data.remove(todo) binding.recyclerView.adapter?.notifyDataSetChanged() } 어댑터 부분의 인자로 리턴값이 없는 함수를 넣어줍니다. val onClickDeleteIcon:(todo: Todo) -> Unit) 처럼, 아이콘 클릭 시 업무 삭제를 의미하는 '표면적인' 함수를 어댑터 인자로 넣어줍니다. 당연히 리턴값이 없으므로 Unit 타입..
해당 프로젝트의 이전에 작성한 코드를 뷰바인딩으로 바꿔보겠습니다. 모듈 단위의 build.gradle에 뷰 바인딩을 선언하면, 레이아웃 XML 파일들의 이름 뒤에 Binding이 붙은 채로 클래스가 생성되게 됩니다. 우선 아래의 코드 처럼, 전역 변수로 binding을 선언하는데, 타입으로는 뷰 결합으로 생성된 ActivityMainBinding을 지정합니다. 그리고 binding에 layoutInflater로 뷰를 가져올 수 있도록 선언하고, view에는 binding.root를 선언합니다. binding.root는 바인딩이 가지는 프로퍼티인데 root를 통해서 어떤 뷰를 가지고 있는지 알게됩니다. 이로써 binding을 사용해 원하는 XML 뷰를 가져올 수 있습니다. private lateinit v..
- Total
- Today
- Yesterday
- 상대적 레이아웃
- 선형 레이아웃
- tabLayout
- ToDo List 앱 만들기
- 탭레이아웃
- 미제사건
- notifyDataSetChanged
- 뷰 바인딩
- 안드로이드 앱 만들기
- 안드로이드 스튜디오 에러
- RecyclerView
- 안드로이드 어댑터
- 2021년 사건사고
- 안드로이드 프로젝트
- 애드뷰
- 리스트뷰
- findViewById
- view binding
- 인텐트
- android adapter
- bmi 계산기 만들기
- 2007년 사건사고
- Bmi Calculator
- 2019년 사건사고
- 리사이클러뷰
- 대한민국 미제사건
- 메소드 오버라이딩
- lazy init
- 자바스크립트 배열
- addView
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |