diff --git a/app/src/main/java/com/example/cherry_pick_android/presentation/adapter/JobGroupAdapter.kt b/app/src/main/java/com/example/cherry_pick_android/presentation/adapter/JobGroupAdapter.kt index c34f81fc..43d0c62e 100644 --- a/app/src/main/java/com/example/cherry_pick_android/presentation/adapter/JobGroupAdapter.kt +++ b/app/src/main/java/com/example/cherry_pick_android/presentation/adapter/JobGroupAdapter.kt @@ -6,17 +6,21 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter -import android.widget.Button import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat import com.example.cherry_pick_android.R +import com.example.cherry_pick_android.databinding.ActivityJobGroupBinding import com.example.cherry_pick_android.domain.model.JobGroup +import dagger.hilt.android.AndroidEntryPoint -class JobGroupAdapter(var context: Context, private val jobgroups: List) : BaseAdapter() { +class JobGroupAdapter( + var context: Context, + private val jobgroups: List, + private val onCompleteBtnCallback: ()->Unit +) : BaseAdapter() { private var selectedjobList =arrayListOf() - override fun getCount(): Int = jobgroups.size override fun getItem(position: Int): Any { @@ -57,6 +61,9 @@ class JobGroupAdapter(var context: Context, private val jobgroups: List + private val binding: ActivityJobGroupBinding by lazy { + ActivityJobGroupBinding.inflate(layoutInflater) + } + companion object{ + const val TAG = "JobGroupActivity" + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_job_group) + setContentView(binding.root) - gridView = findViewById(R.id.gv_job_group) + gridView = binding.gvJobGroup arrayList = ArrayList() var selectedData: ArrayList - adapter = JobGroupAdapter(applicationContext, jobgroups!!) - //adapter = JobGroupAdapter(this, jobgroups) + adapter = JobGroupAdapter(applicationContext, jobgroups, onCompleteButtonStateChanged) gridView?.adapter = adapter selectedData = adapter.getSelectedList() - Log.d("JobGroupActivity", "$selectedData") - - //gridview의 item click 감지 - gridView.onItemClickListener = - AdapterView.OnItemClickListener { parent, view, position, id -> - val completeBtn : Button = findViewById(R.id.btn_complete) - selectedData = adapter.getSelectedList() - - // 직군 1개이상 선택시 완료 버튼 활성화 - if (selectedData.size > 0) { - completeBtn.setBackgroundResource(R.drawable.ic_job_complete_clicked) - completeBtn.isEnabled= true - Log.d("JobGroupActivity", "arrayList크기 : ${arrayList.size}이므로 버튼 활성화 ") - Log.d("JobGroupActivity", "arrayList크기 : ${selectedData.size}이므로 버튼 활성화 ") - } - else{ - completeBtn.setBackgroundResource(R.drawable.ic_job_complete) - completeBtn.isEnabled= false - } - - //activateCompleteBtn() - Log.d("JobGroupActivity", "onItemClickListener is working") - /*var jobgroupItem: JobGroup = jobgroups[position] - arrayList.add(jobgroupItem.toString()) - Log.d("JobGroupActivity", "arrayList : $arrayList ") - - var selectedData = adapter.getSelectedList() - Log.d("JobGroupActivity", "$selectedData")*/ - - } + Log.d(TAG, "$selectedData") GoToProfile() clickcompletebutton() @@ -70,10 +47,10 @@ class JobGroupActivity : AppCompatActivity() { } private fun GoToProfile() { - val backbtn : ImageButton = findViewById(R.id.ibtn_job_change_back) + val backbtn : ImageButton = binding.ibtnJobChangeBack backbtn.setOnClickListener{ var selectedData = adapter.getSelectedList() - Log.d("JobGroupActivity","$selectedData") + Log.d(TAG,"$selectedData") finish() } @@ -81,10 +58,10 @@ class JobGroupActivity : AppCompatActivity() { // 프로필페이지로 이동 = 완료버튼 클릭 private fun clickcompletebutton() { - val completeBtn : Button = findViewById(R.id.btn_complete) + val completeBtn : Button = binding.btnJobComplete completeBtn.setOnClickListener{ var selectedData = adapter.getSelectedList() - Log.d("JobGroupActivity","$selectedData") + Log.d(TAG,"$selectedData") val intent = Intent(this, ProfileActivity::class.java).apply{ putStringArrayListExtra("selectedJobList",selectedData) @@ -94,20 +71,21 @@ class JobGroupActivity : AppCompatActivity() { } } - private fun activateCompleteBtn() { - val completeBtn : Button = findViewById(R.id.btn_complete) - // 직군 1개이상 선택시 완료 버튼 활성화 - if (arrayList.size > 0) { - completeBtn.setBackgroundResource(R.drawable.ic_job_complete_clicked) - completeBtn.isEnabled= true - Log.d("JobGroupActivity", "arrayList크기 : ${arrayList.size}이므로 버튼 활성화 ") + /* 주요 변경 사항 (밑에 2문단 코드) */ + private val onCompleteButtonStateChanged: () -> Unit = { + updateCompleteButtonState() // 완료 버튼 상태 갱신 + } + private fun updateCompleteButtonState() { + val completeBtn: Button = binding.btnJobComplete + val selectedJobList = adapter.getSelectedList() - } - else{ + if (selectedJobList.size > 0) { + completeBtn.setBackgroundResource(R.drawable.ic_job_complete_clicked) + completeBtn.isEnabled = true + } else { completeBtn.setBackgroundResource(R.drawable.ic_job_complete) - completeBtn.isEnabled= false + completeBtn.isEnabled = false } } - } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_job_group.xml b/app/src/main/res/layout/activity_job_group.xml index 46832d6f..855c2f9e 100644 --- a/app/src/main/res/layout/activity_job_group.xml +++ b/app/src/main/res/layout/activity_job_group.xml @@ -129,7 +129,7 @@ app:layout_constraintTop_toBottomOf="@id/gv_job_group">