Вставить из менеджера буфера обмена Android
Если сохранено много строк, таких как: 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)
1 ответ
Неверный индекс 1, размер 1 в java.util.ArrayList....
Это означает, что в вашем Clipboard
(размер 1). Таким образом, получение элемента по индексу 1 вызовет исключение.
Пожалуйста, проверьте, как вы копируете свои данные в буфер обмена. По какой-то причине в вашем буфере обмена находится только 1 элемент.
Чтобы предотвратить возникновение Исключения, вы можете проверить количество элементов в буфере обмена, используя 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");
}