원본출처: 티스토리 바로가기
안드로이드 개발자 문서에서는 아래 링크와 같이 예시를 볼 수 있다. 오늘은 그중에서 그냥 쉽게 EditBox 에서 입력한 내용을 클립보드에 저장해서 이용하는 예제를 만들어 보겠다.
https://developer.android.com/guide/topics/text/copy-paste?hl=ko#java
복사하여 붙여넣기 | Android 개발자 | Android Developers
복사하여 붙여넣기 Android는 복사하여 붙여넣기를 지원하는 강력한 클립보드 기반 프레임워크를 제공합니다. 텍스트 문자열, 복잡한 데이터 구조, 텍스트 및 바이너리 스트림 데이터, 애플리케
developer.android.com
먼저 내가 만드는 앱에서 이용할 부분을 찾아보자.

자주 사용할 수 있는 부분이 Editbox 가 될 것 같다.
예을 들어 오른쪽 그림과 같은 예시 화면이 있다면
제목 에 입력된 내용을 클립보드에 넣었다가
내용에 붙여넣는 것을 해 보기로 하겠다.
import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.os.Bundle; ... /** * A simple {@link Fragment} subclass. * Use the {@link BoardAppendFragment#newInstance} factory method to * create an instance of this fragment. */ public class BoardAppendFragment extends Fragment implements OnBackPressedListener { ... ClipboardManager clipboard ; ClipData clipData ; public BoardAppendFragment() { // Required empty public constructor } ... @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ... clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); ... binding.edTitle.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { clipData = ClipData.newPlainText("title", binding.edTitle.getText().toString()); clipboard.setPrimaryClip(clipData); Toast.makeText(getContext(), getString(R.string.msgClipboardCutText), Toast.LENGTH_SHORT).show(); return true; } }); return binding.getRoot(); } ... }
내용은 간단하다... Clipboard 와 Clipdata 을 선언하고 clipbaord 을 구현했다. 그리고 화면에 있는 editbox 의 longclick 이벤트을 이용해서 editbox 에 입력된 텍스트를 클릭보드에 담아내는 것 까지만 구현을 했다.
붙여넣기는 붙여넣을 곳에 가서 마찬가지로 long click 을 하면 붙여넣기 메뉴가 안드로이드에서 표시를 해 주니 그것을 이용하면 된다
실행되는 모습은 위 동영상과 같이 제목에 글자를 입력하고 long click 을 해서 클립보드에 붙여진 것을 확인후
내용에 가서 long click 으로 붙여 넣기를 해 보는 것이다.
댓글
댓글 쓰기