지식메모/안드로이드 Android

안드로이드 터치 한번으로 글자 복사하기

yonoo 2017. 7. 26. 18:13
반응형





우선

글자 복사를 하기 위해 클립보드 코드를 작성한다.


ClipboardManager clipboardManager = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

ClipData clipData = ClipData.newPlainText("클립보드라벨명", "복사할 텍스트");

clipboardManager.setPrimaryClip(clipData);



그리고 해당 뷰의 글자를 터치한번으로 복사하고 싶다면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    TextView textView= (TextView) findViewById(R.id.text_view); //텍스트뷰 
    String id= textView.getText().toString(); // 텍스트뷰 글자 가져옴
    textView.tvId.setOnTouchListener(new View.OnTouchListener(){   //터치 이벤트 리스너 등록(누를때)
 
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            if(event.getAction()==MotionEvent.ACTION_DOWN){ //눌렀을 때 동작
                
                //클립보드 사용 코드
                ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                ClipData clipData = ClipData.newPlainText("ID",id); //클립보드에 ID라는 이름표로 id 값을 복사하여 저장
                clipboardManager.setPrimaryClip(clipData);
 
                //복사가 되었다면 토스트메시지 노출
                Toast.makeText(context,"ID가 복사되었습니다.",Toast.LENGTH_SHORT).show();
 
            }
 
           
            return true;
        }
    });
 
cs


이렇게 해주면 터치하면 텍스트뷰 안에 있는 글자가 클립보드에 복사된다.


혹시 

ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

여기서 에러가 나면 context 추가해준다.

context.getSystemService로 바꿔서 하면된다.


이걸 바탕으로 롱프레스 등에 응용하면 된다.





반응형