티스토리 뷰
TextView 를 길게 눌러서 복사하고 붙여 넣기 하는 방법을 알아보겠습니다.
1. 실행 화면
2. activity_main.xml
- TextView: 사용자가 LongClick 으로 복사할 텍스트
- EditText: 복사된 텍스트를 붙여넣기 할 공간
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvHelloWorld"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="40sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="붙여넣을 곳"
android:inputType="text"
app:layout_constraintTop_toBottomOf="@id/tvHelloWorld"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
3. MainActivity.kt
- setOnLongClickListener: TextView에 LongClick 할 수 있도록 설정한다.
- clipboard: 안드로이드 시스템에서 ClipboardManager를 가져온다.
- clip: Text를 Clipboard 에 추가하기 위해 데이터 설명과 데이터 자체를 가져온다.
- clipboard.setPrimaryClip: clipboardmanager에 가져온 clip을 추가한다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: ActivityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.tvHelloWorld.setOnLongClickListener {
//시스템 클립보드 가져오기
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
// 새로운 ClipData 객체로 데이터 복사하기
val clip: ClipData =
ClipData.newPlainText("simple text", binding.tvHelloWorld.text.toString())
// 새로운 클립 객체를 클립보드에 배치합니다.
clipboard.setPrimaryClip(clip)
Toast.makeText(this, "복사 완료.", Toast.LENGTH_SHORT).show()
false
}
}
}
'Android' 카테고리의 다른 글
[안드로이드] settings.gradle pluginManagement와 dependencyResolutionManagerment 차이 (0) | 2022.12.23 |
---|---|
[안드로이드] 다이얼로그(AlertDialog)와 에디트텍스트(EditText) 입력하기 (0) | 2022.11.24 |
[Gradle] build variants 에 따른 implementation 종류 (0) | 2022.04.19 |
[Gradle] dependencies 강제 업데이트 (0) | 2022.04.14 |
[AAR] 빌드 종속 라이브러리 동적 추가(maven/pom활용) (0) | 2022.04.11 |