간단한 숫자카운트 기능 구현.
기본적인 Button과 textView등 레이아웃을 잡는 과정.
<TextView
android:id="@+id/numberView"
android:layout_width="360dp"
android:layout_height="70dp"
android:inputType="numberSigned"
android:text="0"
android:gravity="center"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.311"/>
<Button
android:text="-"
android:layout_width="165dp"
android:layout_height="60dp"
android:id="@+id/minusBtn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/numberView"
android:layout_marginTop="24dp"
android:layout_marginEnd="120dp"/>
<Button
android:text="set"
android:layout_width="120dp"
android:layout_height="50dp"
android:id="@+id/btnSet"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/inputNum"
app:layout_constraintHorizontal_bias="0.2"
app:layout_constraintVertical_bias="0.609"
app:layout_constraintTop_toTopOf="parent"/>
<Button
android:text="reset"
android:layout_width="360dp"
android:layout_height="70dp"
android:id="@+id/resetBtn"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/numberView"
android:layout_marginTop="96dp"/>
<EditText
android:layout_width="210dp"
android:layout_height="50dp"
android:inputType="numberSigned"
android:text="20"
android:ems="10"
android:id="@+id/inputNum"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="120dp"
app:layout_constraintVertical_bias="0.61"
app:layout_constraintTop_toTopOf="parent"/>
<Button
android:text="+"
android:layout_width="165dp"
android:layout_height="60dp"
android:id="@+id/plusBtn"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="120dp"
app:layout_constraintTop_toBottomOf="@+id/numberView"
android:layout_marginTop="24dp"/>
레이아웃의 코드 모습
buildFeatures{
viewBinding true
}
binding을 사용하기 위해서 build.gradle(:app)에 코드 추가.
val binding by lazy {ActivityMainBinding.inflate(layoutInflater)}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
}
MainActivity에 binding을 사용할 코드 세팅
binding.plusBtn.setOnClickListener { // 1번
val num = binding.numberView.text.toString()
binding.numberView.text = (Integer.parseInt(num)+1).toString()
}
binding.minusBtn.setOnClickListener { // 2번
val num = binding.numberView.text.toString()
binding.numberView.text = (Integer.parseInt(num)-1).toString()
}
binding.resetBtn.setOnClickListener { // 3번
binding.numberView.text = "0"
}
binding.btnSet.setOnClickListener { // 4번
binding.numberView.text = binding.inputNum.text
}
numberView라는 id값을 가진 TextView의 text를 String타입으로 전환해서 num에 저장
버튼 클릭시 Int형으로 전환된 num에 1을 더해서 String타입으로 바꿔서 화면에 띄워줌
(num은 새롭게 띄워진 값으로 바뀜)
numberView라는 id값을 가진 TextView의 text를 String타입으로 전환해서 num에 저장
버튼 클릭시 Int형으로 전환된 num에 1을 빼서 String타입으로 바꿔서 화면에 띄워줌
(num은 새롭게 띄워진 값으로 바뀜)
numberView라는 id값을 가진 TextView의 text를 0으로 바꿔서 띄우기
numberView라는 id값을 가진 TextView의 text를 inputNum라는 id값을 가진 EditText의
입력된 값으로 바꿔서 띄우기