Skip to content

Commit

Permalink
checkbox event, recyclerview event 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
otcroz committed Sep 12, 2022
1 parent ab450a4 commit a416778
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 12 deletions.
7 changes: 7 additions & 0 deletions SHAPEUP2022/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.example.shape_up_2022

import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
Expand All @@ -11,6 +12,8 @@ import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.shape_up_2022.databinding.FragmentBreed1Binding
import com.example.shape_up_2022.databinding.ItemBreedBinding
import com.example.shape_up_2022.simulation.SimStartNamingActivity
import com.example.shape_up_2022.simulation.SimWalkSearchAdapter

// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
Expand Down Expand Up @@ -42,8 +45,24 @@ class MyBreedAdapter(val datas: MutableList<DogInfo>) : RecyclerView.Adapter<Rec
binding.breedSize.text = datas[position].size
binding.breedGroup.text = datas[position].group
binding.breedCharacter.text = datas[position].character

// (1) 리스트 내 항목 클릭 시 onClick() 호출
holder.itemView.setOnClickListener {
itemClickListener.onClick(it, position)
}
}

// (2) 리스너 인터페이스
interface OnItemClickListener {
fun onClick(v: View, position: Int)
}
// (3) 외부에서 클릭 시 이벤트 설정
fun setItemClickListener(onItemClickListener: OnItemClickListener) {
this.itemClickListener = onItemClickListener
}
// (4) setItemClickListener로 설정한 함수 실행
private lateinit var itemClickListener : OnItemClickListener

}

/**
Expand Down Expand Up @@ -81,6 +100,18 @@ class BreedFragment1 : Fragment() {
var adapter = MyBreedAdapter(sampledatas)
binding.breedRecyclerview1.adapter = adapter // 어댑터 설정

// 리사이클러뷰 이벤트
adapter.setItemClickListener(object: MyBreedAdapter.OnItemClickListener {
override fun onClick(v: View, position: Int) {
// 클릭했을 때 액티비티 이동
// 현재는 말티즈 입양 과정만 있음, 추후에 정보를 추가할 때 position을 사용한 관리 필요
if(position == 0) {
val intent = Intent(context, SimStartNamingActivity::class.java)
startActivity(intent)
// 프래그먼트 떼어내기
}
}
})

return binding.root
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package com.example.shape_up_2022.simulation

import android.content.DialogInterface
import android.content.Intent
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.CompoundButton
import androidx.appcompat.app.AlertDialog
import com.example.shape_up_2022.R
import com.example.shape_up_2022.common.MainActivity
Expand All @@ -16,6 +18,10 @@ class SimStartActivity : AppCompatActivity() {
val binding = ActivitySimStartBinding.inflate(layoutInflater)
setContentView(binding.root)

// 버튼 비활성화
binding.btnSimulationStartStart.isEnabled = false
binding.btnSimulationStartStart.setBackgroundColor(Color.parseColor("#d3d3d3"));

/* 테스트하지 않은 사용자를 돌려보내는 다이얼로그 */
// 취소(메인으로), 테스트(테스트 시작)
val eventhandler = object : DialogInterface.OnClickListener {
Expand All @@ -35,6 +41,7 @@ class SimStartActivity : AppCompatActivity() {
}
}
}

var builder = AlertDialog.Builder(this)
.setTitle("테스트하지 않은 사용자")
.setMessage("반려견 케어 성향 점검을 먼저 진행하세요.")
Expand All @@ -49,8 +56,29 @@ class SimStartActivity : AppCompatActivity() {



// 체크박스를 모두 체크해야 이동 버튼 활성화
/* 체크박스를 모두 체크해야 이동 버튼 활성화 */
val check1 = binding.startCheck1
val check2 = binding.startCheck2
val check3 = binding.startCheck3
val check4 = binding.startCheck4

// checkBox event
val checkListener = CompoundButton.OnCheckedChangeListener{ button, isChecked ->
if(isChecked){ // checked event가 발생했을 때
// 4개의 체크박스가 모두 checked == true
if(check1.isChecked && check2.isChecked && check3.isChecked && check4.isChecked){
binding.btnSimulationStartStart.isEnabled = true
binding.btnSimulationStartStart.setBackgroundColor(Color.parseColor("#FFE4A07F"));
}
}

}

// CheckBox에 event 달기
check1.setOnCheckedChangeListener(checkListener)
check2.setOnCheckedChangeListener(checkListener)
check3.setOnCheckedChangeListener(checkListener)
check4.setOnCheckedChangeListener(checkListener)


// 입양하기 버튼 -> 화면 이동
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,6 @@ class SimStartBreedActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
binding = ActivitySimStartBreedBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.breedSkip.setOnClickListener {
val intent = Intent(this, SimStartNamingActivity::class.java)
startActivity(intent)
finish()
}


fragment1 = BreedFragment1()
fragment2 = BreedFragment2()
Expand Down
4 changes: 4 additions & 0 deletions SHAPEUP2022/app/src/main/res/layout/activity_sim_start.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
android:orientation="vertical">

<CheckBox
android:id="@+id/start_check1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="반려견 생필품 구비" />
Expand All @@ -53,6 +54,7 @@
android:text=" 반려견의 잠자리, 배변패드 또는 배변 판, 치약, 빗, 발톱깎기를 포함한 생필품을 준비해두어야 합니다. 어린 강아지의 경우 ..... 등이 추가로 필요합니다." />

<CheckBox
android:id="@+id/start_check2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="반려견 입양 절차 이해" />
Expand All @@ -64,6 +66,7 @@
android:text=" 1. 상담 \n 2. 보호소 등에서 강아지 데려오기\n 3. (입양 후 30일 이내에) 반려동물 등록\n 4. 입양 첫날 집중해서 보살펴야 하는 부분 숙지" />

<CheckBox
android:id="@+id/start_check3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="반려견은 가족 모두에게 받아들여져야 할 새 식구" />
Expand All @@ -75,6 +78,7 @@
android:text=" 반려견을 함께 돌볼 가족들과 충분한 상의를 거친 후 결정합시다." />

<CheckBox
android:id="@+id/start_check4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="반려견의 평생 동반자가 된다는 마음가짐" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,4 @@
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/breed_tabContent" />
<Button
android:id="@+id/breed_skip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="넘어가기" />
</LinearLayout>

0 comments on commit a416778

Please sign in to comment.