지식메모/안드로이드 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로 바꿔서 하면된다.
이걸 바탕으로 롱프레스 등에 응용하면 된다.
반응형