你的問題的原因是未知的。因爲它適用於我測試過的設備(S6 5.0)。你可能想看看棄用getText()
方法的實現:
public CharSequence getText() {
ClipData clip = getPrimaryClip();
if (clip != null && clip.getItemCount() > 0) {
return clip.getItemAt(0).coerceToText(mContext);
}
return null;
}
爲了獲得它使用方法coerceToText文本()。根據該方法的描述:
* Turn this item into text, regardless of the type of data it
* actually contains.
因此,我推測方法的getText()的折舊是由於性能問題或別的東西。
無論如何。由於方法getText()
使用API,它不會被棄用,作爲一種解決方法,你可以,如果空呼籲建議API返回使用此方法(具體方法coerceToText()
)的源的一些部分:
ClipboardManager mclipboard =(ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
boolean isTextPlain = mclipboard.getPrimaryClip().getDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN);
CharSequence text = null;
if (isTextPlain){
ClipData clipData = mclipboard.getPrimaryClip();
ClipData.Item item = clipData.getItemAt(0);
if ( item!= null){
text = item.getText();
if (text == null){
// taken from source of clipData.getText() method
text = item.coerceToText(this);
}
}
}
嘿無法重現此問題。我只是複製並過去了你的代碼,然後在它運行的設備上進行了測試。這裏是截圖 http://imgur.com/EBPsLVP 你如何複製數據並讓你在真實設備上進行測試? – ProblemSlover
@ProblemSlover它是三星Galaxy S4和銀河標籤。我明天會發布截圖。 – mjosh
我的回答對你有幫助嗎? – ProblemSlover