마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼클릭시 복사하게 기능...궁금한게있습니다.

0 추천
ClipboardManager clipboardManager = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
String txt = null;
case R.id.copy_btn:
Log.d("복사하기부분", "무슨내용?" + txt);
txt = ((EditText)findViewById(R.id.copydtx)).getText().toString();
clipboardManager.setText(txt);
Toast.makeText(getApplication(), txt + "가 복사되었습니다.", 0).show();
break;
 
현재 슬라이드메뉴쪽에 복사하기 버튼이 있고 이버튼 밑에 text 혹은 edittext 를 넣은뒤에 이런 소스를 짜면 잘돌아갑니다.
 
근데 슬라이드 메뉴에 복사하기 버튼이 있고 메인화면에 text 가 있는데 그 text의 내용을 DB에서 긁어오며 그오는걸 복사하고싶은데
case R.id.copy_btn:
Log.d("복사하기부분", "무슨내용?" + txt);
T_body.getText().toString();
clipboardManager.setText(T_body);
Toast.makeText(getApplication(), txt + "가 복사되었습니다.", 0).show();
break;
 
하면 setText 에 오류가 뜹니다
The method setText(CharSequence) in the type ClipboardManager is not applicable for the arguments (TextView)
 
setText -> setText((CharSequence) 이런식으로 바뀌는데요 오류는 안뜨나 실행하여 버튼을 누루면 오류가뜹니다.
T_body에 내용에도 있음에도 로그부분에서는 null 이 뜨며
clipboardManager.setText((CharSequence) T_body); 이부분에서 오류가뜹니다.
CharSequence 를 처음봣는데 찾아봐도 잘모르겠네요.
답변좀해주세요 ㅠ_ㅠ
콜벳 (7,150 포인트) 님이 2014년 6월 13일 질문

1개의 답변

+1 추천
 
채택된 답변

아이고.... 안드로이드 개념을 모르시는건지... 자바에 대해서 이해도가 낮으신건지... 무엇부터 설명드려야할지 난감하네요...

오류내용만 읽어봐두요.타입 오류라는것을 알 수 있는데요.

즉 TextView의 인지, EditText인지는 모르겠으나 T_body를 getText().toString으로 가져오는 놈은 String 타입입니다.

기본 적으로 String 클래스는 오브젝트를 확장하고 CharSequence를 인터페이스로 두고 있는데요. 그때 그 않에 toString이 메소드로 지정되어서 저 메소드도 사용할 수 있는것입니다. 그럼 

리턴으로 당연히 String 타입이 오겠죠?

그럼 setText의 파라미터는 CharSequence인데 String을 넣으니깐 타입 에러가 나는 것입니다.

 

해결방법은 getText해서 가져온 스트링을

StringBuffer text new StringBuffer(getText().toString());

스트링버퍼 생성자로 넘긴 객체를 setText하게되면 문제없없이 될 것입니다.

 

쭈쭈총각 (17,750 포인트) 님이 2014년 6월 13일 답변
콜벳님이 2014년 6월 13일 채택됨
...