2017-02-03 5 views
0

내 클립 보드에 s1, s2, s3, ...과 같이 많은 문자열을 저장하면 s1은 마지막으로 저장 한 항목입니다. 나는 s2를 붙이고 싶다. 나는 붙여 넣기 (S1)이 코드를 사용 : 안드로이드 클립 보드 관리자에서 붙여 넣기

myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
ClipData abc = myClipboard.getPrimaryClip(); 
ClipData.Item item1 = abc.getItemAt(0); 
ClipData.Item item2 = abc.getItemAt(1); 
String text = item2.getText().toString(); 
textview.setText(text); 

도 나는 abc.getItemAt(1)을 사용하지했습니다.

E/InputEventReceiver: Exception dispatching input event. 
    E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback 
    E/MessageQueue-JNI: java.lang.IndexOutOfBoundsException: 
Invalid index 1, size is 1 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251) at java.util.ArrayList.get(ArrayList.java:304) at android.content.ClipData.getItemAt(ClipData.java:790) 
+0

사용하여 클립 보드에있는 항목의 수를 확인하는 것입니다? –

+0

not worked는 에러를 의미합니까? 또는 잘못된 결과? – imudin07

+0

코드에서 'item2' 유형은 무엇입니까? 그리고 당신은 그것을 어디에 할당하고 있습니까? –

답변

0

, 크기가 ....에서 java.util.ArrayList에서 1 잘못된 인덱스 1

그것은 의미

도와주세요 와요 고마워요은

로그 alot을 Clipboard에 1 개의 항목 만 있습니다 (크기는 1). 따라서 인덱스 1에 항목을 가져 오는 것은 예외를 throw합니다.

데이터를 클립 보드에 복사하는 방법을 확인하십시오. 어떤 이유로 클립 보드에 항목이 하나만 있습니다. 당신이 발생하는 예외를 방지하기 위해 할 수있는

한 것은 당신이 그것을 시도 않았다 안드로이드 버전 abc.getItemCount()

if (abc.getItemCount() > 1) { 
    ClipData.Item item2 = abc.getItemAt(1); 
    String text = item2.getText().toString(); 
    textview.setText(text); 
} else { 
    textview.setText("Only one item present in clipboard"); 
}