반응형
안드로이드 개발자 문서에서는 아래 링크와 같이 예시를 볼 수 있다. 오늘은 그중에서 그냥 쉽게 EditBox 에서 입력한 내용을 클립보드에 저장해서 이용하는 예제를 만들어 보겠다.
https://developer.android.com/guide/topics/text/copy-paste?hl=ko#java
먼저 내가 만드는 앱에서 이용할 부분을 찾아보자.
자주 사용할 수 있는 부분이 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 으로 붙여 넣기를 해 보는 것이다.
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
안드로이드 앱 만들기 : 전화 기본앱 ? (5) | 2021.11.08 |
---|---|
안드로이드 앱 만들기 : NotificationCambat 의 기능 구현에 대한 이해 (3) | 2021.11.07 |
안드로이드 앱 만들기 : RecycleView.Adapter 에 클릭 이벤트 달아보기 (0) | 2021.11.03 |
안드로이드 앱 만들기 : Recycleview 을 구현하다 벌어지는 흔한 실수 (0) | 2021.11.02 |
안드로이드 앱 만들기 Firebase FCM 으로 메시지 전송하기 (4) | 2021.10.22 |