android:shrinkColumns="*"
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/buttonPressGray">
android:stateListAnimator="@null"
android:onClick="buttonClicked"
ImageButton에서 쓸 이미지는 일단 기본 이미지사용
drawable -> new -> vector asset
split함수를 통해 공백으로 띄어, 배열에 저장함
val expressionText = expressionTextView.text.split(" ")
expressionTextView.text = text.dropLast(1) + operator
//dropLast는 n만큼 문자를 버리는 함수
SpannableStringBuilder - 문자의 범위를 따로 색칠할 경우 사용
val ssb = SpannableStringBuilder(expressionTextView.text)
ssb.setSpan(
ForegroundColorSpan(ContextCompat.getColor(this,R.color.green)), //단독 getColor가 deprecated되면서 ContextCompat의 getColor를 이용
expressionTextView.text.length - 1,
expressionTextView.text.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
expressionTextView.text = ssb
plugins {
id 'kotlin-kapt' // room을 사용하기 위해 추가
}
dependencies {
implementation "androidx.room:room-runtime:2.3.0" // runtime을 위한 입력
kapt "androidx.room:room-compiler:2.3.0" // room complier의 최신버전 입력
}
data class History(
@PrimaryKey val uid: Int?,
@ColumnInfo(name = "expression") val expression: String?,
@ColumnInfo(name = "result") val result: String?
)
@Delete
fun delete(history: History)
@Query("SELECT * FROM history WHERE result LIKE :result")
fun findByResult(result: String) : List<History>
@Query("SELECT * FROM history WHERE result LIKE :result LIMIT 1")