본문 바로가기

TIL

TIL 56일차 - 최종프로젝트

점수 입력란 별 유효성 검사 추가

SearchCostFragment

    <EditText
        android:id="@+id/ed_search_cost_input_cost"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="35dp"
        android:layout_marginStart="25dp"
        android:layout_marginEnd="80dp"
        android:gravity="end"
        android:inputType="number"
        android:maxLength="2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/tv_search_cost_title"
        android:hint="10" />

기존 EditText 직접 입력 방식(백, 십, 일의 단위까지) -> maxLength 추가해서 0 ~ 99 만 원 사이의 값을 사용하도록 변경

 

 

마찬가지로 기존 EditText 직접 입력 방식(시, 분 한번에) -> 시, 분을 나눠 코드상으로 합치도록 수정

        binding.tvSearchTimeNext.setOnClickListener {

            val fromStart: String?
            val toStart: String?
            fromStart =
                binding.edSearchTimeFrom.text.toString() + binding.edSearchTimeFrom2.text.toString()
            toStart =
                binding.edSearchTimeTo.text.toString() + binding.edSearchTimeTo2.text.toString()
                
                ...

 

입력란이 비어있을 시 다음 화면으로 넘어갈 수 없게끔 수정(단, 건너뛰기 클릭시는 예외)

        binding.apply {
            tvSearchCostNext.setOnClickListener {

                if (binding.edSearchCostInputCost.text.toString().isEmpty()) {
                    Toast.makeText(requireContext(), "금액을 입력해주세요.", Toast.LENGTH_SHORT).show()
                } else {
                    val price: Int = binding.edSearchCostInputCost.text.toString().toInt() * 10000
                    viewModel.getCostScore(price)
                    val searchLoadingFragment = SearchLoadingFragment()
                    val transaction = parentFragmentManager.beginTransaction()
                    transaction.replace(R.id.fr_main, searchLoadingFragment)
                    transaction.addToBackStack(null)
                    transaction.commit()
                }
            }

            tvSearchCostSkip.setOnClickListener {
                val price = 0
                viewModel.getCostScore(price)
                val searchLoadingFragment = SearchLoadingFragment()
                val transaction = parentFragmentManager.beginTransaction()
                transaction.replace(R.id.fr_main, searchLoadingFragment)
                transaction.addToBackStack(null)
                transaction.commit()
            }
        }
        
        ...

'TIL' 카테고리의 다른 글

TIL 58일차 - 최종프로젝트  (0) 2024.06.12
TIL 57일차 - 최종프로젝트  (0) 2024.06.11
TIL 55일차- 최종프로젝트  (0) 2024.06.07
TIL 54일차 - 최종프로젝트  (0) 2024.06.06
TIL 53일차 - 최종프로젝트  (1) 2024.06.05