2017-02-15 13 views
1

В Android, как получить текст из буфера обмена used to be simple:Как получить текст из объекта ClipData?

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
String text = clipboard.getText(); 

Метод getText() теперь устаревшее, а documentation говорит использовать getPrimaryClip() вместо:

GetText()

Этот метод устарел на уровне API 11. Вместо этого используйте getPrimaryClip(). Это извлекает основной клип и пытается принудить его к строке.

Однако getPrimaryClip() возвращает ClipData объект, и не ясно, как получить содержимое текста в этом объекте. Как это можно достичь?

ответ

0

Используйте этот код:

public CharSequence getText() { 
    ClipData clip = getPrimaryClip(); 
    if (clip != null && clip.getItemCount() > 0) { 
     return clip.getItemAt(0).coerceToText(mContext); 
    } 
    return null; 
} 

Source