2017-02-03 4 views
0

Si enregistré de nombreuses chaînes comme: s1, s2, s3, ... dans mon clipboard et s1 est le dernier élément qui a enregistré. Je veux coller s2. J'ai utilisé ce code pour coller s1:Coller à partir du gestionnaire de presse-papiers android

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); 

aussi j'ai utilisé abc.getItemAt(1) et non travaillé.

S'il vous plaît aider me.thanks alot

journal:

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

Quelle version android avez-vous essayer? –

+0

pas travaillé signifie une erreur? ou mauvais résultat? – imudin07

+0

Quel est le type de 'item2' dans votre code? et où l'attribuez-vous? –

Répondre

0

index non valide 1, la taille est de 1 à java.util.ArrayList ....

Cela signifie qu'il n'y a qu'un seul article dans votre Clipboard (la taille est de 1). Donc, obtenir l'élément à l'index 1 lèvera une exception.

Veuillez vérifier la façon dont vous copiez vos données dans le presse-papiers. Pour une raison quelconque, votre presse-papiers n'a qu'un seul article.

Une chose que vous pouvez faire pour empêcher l'exception de se produire est de vérifier le nombre d'éléments dans le presse-papiers en utilisant 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"); 
}