목록안드로이드 (43)
야금야금 공부
onCreate() : 앱의 진입점. 다른 함수를 호출하여 사용자 인터페이스를 빌드함. ex) Kotlin의 main() 함수 setContent() : 레이아웃을 정의하는데 사용 @Composable : 이 주석으로 표시된 모든 함수는 setContent() 함수 또는 다른 구성 가능한 함수에서 호출할 수 있다. 아무것도 반환하지 않는다. 주석은 Jetpack Compose에서 이 함수가 UI를 생성하는 데 사용된다고 Kotlin 컴파일러에게 알리는 역할을 한다. 1. 구성 가능한 함수 몇 가지 입력을 받아 화면에 표시되는 내용을 생성하는 함수 구성 요소 ex) Greeting() 함수 : 위에 @Composable 주석이 있으므로 구성 가능한 함수이다. @Composable fun Greeting(n..
history 버튼에 보여줄 DB를 설정해주었다. [ model 패키지 ] 지난번에 model 패키지를 새로 만들어 DB파일을 만들어 주었는데 오늘 마저 진행해주었다. 오늘은 Dao 패키지를 작성해 history에서 DB에 실행할 기능을 만들어 주었다. 추가적으로 4-1번의 기능도 알려주셨다. package com.example.calculator.model import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey @Entity data class History ( // unique id @PrimaryKey val uid: Int?, @ColumnInfo(name = "expression") va..
오늘은 clearButtonClicked과 resultButtonClicked 함수를 정의해주었다. 1. clearButtonClicked 함수 초기화시키는 함수로 결과와 연산화면을 초기화한다. 그리고 Operator도 기존의 값인 false로 다시 초기화시켜준다. fun clearButtonClicked(v: View) { expressionTextView.text = "" resultTextView.text = "" isOperator = false hasOperator = false } 2. resultButtonClicked 함수 (숫자와 연산자 숫자) 의 형태가 아닌 것은 모두 예외처리를 해주고, DB에 연산과정을 저장하기 위해 아래에 변수 2가지를 새로 만들어 주었다. 그리고 마지막에는 ' =..
오늘은 historyLayout을 정의하는 코드를 구현하였다. 1. closeHistoryButtonClicked history부분을 닫는 역할. historyLayout을 보이지 않게 설정하면 닫기 버튼처럼 활용할 수 있다. fun historyButtonClicked(v: View) { historyLayout.isVisible = true // TODO 디비에서 모든 기록 가져오기 // TODO 뷰에 모든 기록 할당하기 } fun closeHistoryButtonClicked(v: View) { historyLayout.isVisible = false } fun historyClearButtonClicked(v: View) { // TODO 디비에서 모든 기록 삭제 // TODO 뷰에서 모든 기록 ..
계산 결과를 실시간으로 나타내주는 기능을 넣을 차례이다. 1. calculateExpression 함수 구현 계산 결과를 resultTextView에 넣을 수있게 계산을 해주는 함수이다. 먼저 오류가 발생할 수 있는 예외사항을 잡아주었다. operator가 없고, (숫자 + 연산자 + 숫자) 형태가 아닌 경우 연산자 앞뒤의 숫자가 숫자가 아닌 경우 val expressionText = expressionTextView.text.split(" ") // hasOperator 가 없거나 expressionText의 크기가 3(숫자, 연산자, 숫자)이 아닐 경우 -> ㅇㅖ외 if (hasOperator.not() || expressionText.size != 3){ // ""을 넣어 초기화해 줌 return ..
어제 게시글에서 빠뜨렸는데 구현해준 기능에 대한 설명을 안 적어서 오늘 추가로 적을 예정이다. when 구문을 사용하여 isOperator가 true일 경우와 hasOperator가 true일 경우를 나타내었다. 1. isOperator = true이면, 연산자가 한번 눌러졌다는 뜻이다. 처음에 연산자를 한번 누르면 when의 else부분이 실행된다. 따라서 연산자가 추가된 후 isOperator가 true가 되고, 한번 더 누르면 isOperator가 true여서 true부분이 실행된다. expressionTextView의 제일 마지막 부분이 연산자이기 때문에 제거해야한다. dropLast(1)을 이용해 마지막 연산자를 제거한 후 새로 눌러준 연산자를 넣어준다. => 연산자 수정 완료! 2. hasOp..