본문 바로가기
🧡 Projects/🧡 Projects: App

[방광곡곡] 아이콘 클릭시 전화번호, 주소 복사

by eyes from es 2024. 12. 6.
728x90
반응형

1️⃣  의도

Fragment에서 id가 copy_icon imageButton을 클릭하면 옆에 있는 text를 클립보드에 복사.

 

2️⃣ Layout xml

<LinearLayout
                    android:paddingVertical="3dp"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/toilet_location_address"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                        android:layout_gravity="center"
                        android:text="서울특별시 세진구"
                        android:textColor="@color/darkerGrey"
                        android:textSize="14sp"
                        android:textStyle="bold" />

                    <ImageButton
                        android:id="@+id/copy_address_icon"
                        android:layout_marginLeft="5dp"
                        android:layout_gravity="center"
                        android:background="@color/white"
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:padding="5dp"
                        android:scaleType="fitCenter"
                        android:src="@drawable/copy_icon" />
                </LinearLayout>

 

 

class DetailOptionFragment : Fragment() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        userViewModel = ViewModelProvider(requireActivity())[UserViweModel::class.java]
    }

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // binding 객체를 초기화
        _binding = FragmentDetailOptionBinding.inflate(inflater, container, false)
        
        toiletData?.let { toilet ->
            //주소 복사
            val copyIcon : ImageButton = binding.copyAddressIcon
            copyIcon.setOnClickListener {

                //클립 보드 매니저 가져오기 (Activity)
                //val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
				
                // Fragment 에서 클립 보드 매니저 가져오기
				val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager

                //복사할 텍스트 생성
                val clip = ClipData.newPlainText("address", toilet.address_road)

                // 클립보드에 텍스트 복사
                clipboard.setPrimaryClip(clip)

                Toast.makeText(context, "주소가 복사되었습니다!", Toast.LENGTH_SHORT).show()

            }
        }

        return binding.root
    }
}

 

728x90
반응형