클립보드 복사

쿵ㅇ양·2024년 2월 11일
0

Android

목록 보기
16/30

드뎌 공유하기 다이얼로그의 마지막 버튼인!! 일련번호 복사!!!

되게되게 간단하다!!!!!

flow

1. get Api를 호출해서 일련번호 받아와서 변수에 저장하기

2. 버튼 클릭 했을때 일련번호를 클립보두에 복사하기!!

이게 다임!!

코드

1. 일련번호 변수에 넣어주기


//우선 변수 선언
private var serialNumber: Int? = null


 override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)


		//serialNumber 값을 먼저 초기화해주기
        initDefaultFeed()
        
    }

private fun initDefaultFeed() {
        lifecycleScope.launch {
            val realProfileId = arguments?.getInt("realProfileId", -1)
            try {
                val response: Response<GetAllProfile> = withContext(Dispatchers.IO) {
                    RetrofitClient.mainProfile.getDataAll(realProfileId!!.toLong())
                }

                if (response.isSuccessful) {
                    val responseData: GetAllProfile? = response.body()
                    Log.d("GETALL 성공~~", "응답 데이터: $responseData")
                    // API 응답에서 serialNumber 값을 받아와서 초기화합니다.
                    serialNumber = responseData?.result?.serialNumber
                    Log.d("씨리얼", serialNumber.toString())
                } else {
                    val errorBody = response.errorBody()?.string() ?: "No error body"
                    Log.e(
                        "GETALL 요청 실패",
                        "응답코드: ${response.code()}, 응답메시지: ${response.message()}, 오류 내용: $errorBody"
                    )
                }
            } catch (e: Exception) {
                Log.e("GETALL 요청 실패", "에러: ${e.message}")
            }
        }
    }

2. 클립보드에 일련번호 복사

binding.numberPasteBtn.setOnClickListener {

     //뒤에 복사하는 데이터 넣어주기
     val clip = ClipData.newPlainText("클립보드 복사", serialNumber.toString())
     
     //ClipboardManager 객체 가져옴
     val clipboard: ClipboardManager = context?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager

//ClipboardManager의 setPrimaryClip() 메서드를 사용하여 클립보드에 ClipData를 설정
//클립보드에 복사한 텍스트 데이터가 저장
     clipboard.setPrimaryClip(clip)
     
     //복사후 토스트 메세지 띄우기
    Toast.makeText(requireContext(), "클립보드에 복사되었습니다.", Toast.LENGTH_SHORT).show()

        }
profile
개발을 공부하고 있는 대학생

0개의 댓글

관련 채용 정보