모바일 앱(안드로이드)

안드로이드 앱 만들기 : 클립보드을 이용해 보기

Billcorea 2021. 11. 4. 09:30
반응형

안드로이드 개발자 문서에서는 아래 링크와 같이 예시를 볼 수 있다.  오늘은 그중에서 그냥 쉽게 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 으로 붙여 넣기를 해 보는 것이다.   

 

 

 

반응형