본문 바로가기

내일배움캠프

본 캠프 42일 차

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