class DetailFragment : Fragment() {
//메모리 누수를 막기 위해
private var _binding : FragmentDetailBinding? = null
private val binding get() = _binding!!
//즐겨찾기 상태
private var isFavorite = false
//데이터 받아오기
private val data : ContactData? by lazy {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
arguments?.getParcelable(Contants.ITEM_DATA,ContactData::class.java)
}else {
arguments?.getParcelable<ContactData>(Contants.ITEM_DATA)
}
}
// onCreate 생략가능 -> 데이터를
// override fun onCreate(savedInstanceState: Bundle?) {
// super.onCreate(savedInstanceState)
// arguments?.let {
// }
// }
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentDetailBinding.inflate(inflater,container,false)
return binding.root
Log.d("DetailFragment","aaa onCreateView")
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if (arguments != null) {
binding.tvDetailName.text = getArguments()?.getString(ContactDatabase.totalContactData.toString())
binding.tvDetailMobilePerson.text = getArguments()?.getString(ContactDatabase.totalContactData.toString())
}
//리스트에서 데이터 받기
binding.tvDetailName.text = data?.name
binding.ivDetailPerson.setImageResource(data?.profileImage as Int)
binding.tvDetailMobilePerson.text = data?.phoneNumber
binding.tvDetailEmailPerson.text = data?.email
isFavorite = data?.favorite == true
//즐겨찾기 눌렀을 때와 안 눌렀을 때
binding.ivDetailStar.setImageResource(if(isFavorite)R.drawable.star_full else R.drawable.star_empty)
//즐겨찾기 눌렀을 때
binding.ivDetailStar.setOnClickListener {
if (!isFavorite) {
binding.ivDetailStar.setImageResource(R.drawable.star_full)
Toast.makeText(context,R.string.detail_favorite,Toast.LENGTH_SHORT).show()
isFavorite = true
//그 외
}else {
binding.ivDetailStar.setImageResource(R.drawable.star_empty)
Toast.makeText(context,R.string.detail_favorite_del,Toast.LENGTH_SHORT).show()
isFavorite = false
}
}
//뒤로가기
// binding.layoutDetailBack.setOnClickListener {
// val fragmentList = ContactListFragment()
// requireActivity().supportFragmentManager.beginTransaction()
// .replace(R.id.viewPager_contact_activity_swipe,fragmentList)
// .addToBackStack(null)
// .commit()
// }
// //리스트로 데이터 보내기
// binding.layoutDetailBack.setOnClickListener {
// val bundle = Bundle()
//// bundle.putParcelable(Contants.ITEM_DATA,data)
// bundle.putBoolean(Contants.ITEM_LIKE,isFavorite)
// bundle.putParcelable(Contants.ITEM_INDEX,position)
// val fragmentList = ContactListFragment()
// fragmentList.arguments = bundle
// requireActivity().supportFragmentManager.beginTransaction()
// .replace(R.id.viewPager_contact_activity_swipe,fragmentList)
// .addToBackStack(null)
// .commit()
// }
//문자보내기
binding.btnDetailMessage.setOnClickListener {
val mobileNumber = binding.tvDetailMobilePerson.text
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("sms:${mobileNumber}")))
}
//전화하기
binding.btnDetailCall.setOnClickListener {
val mobileNumber = binding.tvDetailMobilePerson.text
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("tel:${mobileNumber}")))
}
Log.d("DetailFragment","aaa onViewCreated")
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
아무리 데이터를 넘겨 받으려고 해도 안되서 튜터님을 찾아가 봤는데 프래그먼트가 아니라 액티비티로 만들라고 하셨다...
고대로 삭제될 데이터...그냥 흔적만 남겨두는 용도로...
'내일배움캠프' 카테고리의 다른 글
본 캠프 45일 차 (0) | 2024.01.23 |
---|---|
본 캠프 44일 차 (2) | 2024.01.22 |
본 캠프 40일 차 (0) | 2024.01.16 |
본 캠프 39일 차 (0) | 2024.01.15 |
본 캠프 38일 차 (1) | 2024.01.12 |