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
반응형