728x90
안녕하세요
오늘은 ClipboardManager를 사용해서 텍스트를 복사 및 붙여넣기 하는 기능을 구현해보도록 하겠습니다.
전체 코드입니다.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_marginTop="50dp"
android:id="@+id/editText"
android:hint="텍스트를 입력해주세요"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:layout_marginTop="20dp"
android:id="@+id/btnCopy"
android:text="복사하기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:layout_marginTop="10dp"
android:id="@+id/btnPaste"
android:text="붙여넣기"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
private EditText editText;
private Button btnCopy, btnPaste;
private ClipboardManager clipboardManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = findViewById(R.id.editText);
btnCopy = findViewById(R.id.btnCopy);
btnPaste = findViewById(R.id.btnPaste);
clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 텍스트 복사하기
btnCopy.setOnClickListener(view -> {
String textToCopy = editText.getText().toString();
ClipData clipData = ClipData.newPlainText("text", textToCopy);
clipboardManager.setPrimaryClip(clipData);
Toast.makeText(MainActivity.this, "텍스트가 복사되었습니다!", Toast.LENGTH_SHORT).show();
});
// 텍스트 붙여넣기
btnPaste.setOnClickListener(view -> {
if (clipboardManager.hasPrimaryClip() && clipboardManager.getPrimaryClipDescription().hasMimeType("text/plain")) {
ClipData.Item item = clipboardManager.getPrimaryClip().getItemAt(0);
editText.setText(item.getText().toString());
Toast.makeText(MainActivity.this, "텍스트가 붙여넣기 되었습니다!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "클립보드에 복사된 텍스트가 없습니다!", Toast.LENGTH_SHORT).show();
}
});
}
}
ClipboardManager 선언 : clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
텍스트 복사 : clipboardManager.setPrimaryClip(clipData);
텍스트 붙여넣기 : clipboardManager.getPrimaryClip().getItemAt(0).getText();
데이터 유효성 검사 : if (clipboardManager.hasPrimaryClip())를 사용해 클립보드 데이터가 있는지 확인
해당 기능을 활용하여 메모 앱, 채팅 앱 등 다양하게 활용이 가능합니다.
시연 영상입니다.
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android] AnyChart 로 막대그래프 생성 및 tooltip 활용 (0) | 2025.01.14 |
---|---|
[Android][JAVA] 접근성 서비스 (Accessibility Service) : 앱에서 이벤트 추적과 자동화 구현하기 (0) | 2025.01.13 |
[Java][Android] AnyChart 로 원형 차트 만들기 (0) | 2025.01.07 |
[Java][Android] 안드로이드 웹 스크래퍼 만들기: Jsoup으로 간단한 뉴스 크롤러 구현 (2) | 2025.01.06 |
[Java][Android] Bundle을 활용해 액티비티 간 데이터 전달하기 (0) | 2025.01.05 |