簡體   English   中英

Android中的跨版本(啟動api 7(eclair))復制粘貼?

[英]Cross-version (starting api 7 (eclair)) copy paste in Android?

我想在TextView中啟用復制粘貼。

我在Android文檔中找到了這些非常好的解釋: http//developer.android.com/guide/topics/clipboard/copy-paste.html

但它只能從版本11開始 - 蜂窩!

我需要的東西在這個時間點也適用於大多數用戶,這意味着它必須也適用於姜餅,froyo和eclair。

我該用什么?

使用android.text包中的ClipboardManager 他們將它移動到另一個包中,因為他們開始支持除文本之外的剪輯內容,但為了向后兼容,您仍然可以使用舊名稱來使用它。

你仍然喜歡這樣的東西:

    ClipboardManager cm=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

    cm.setText("something");

這是一個示例項目

這些是將純文本復制到剪貼板並從Android中的剪貼板粘貼純文本的完全跨平台且無異常的方法:

@SuppressLint("NewApi") @SuppressWarnings("deprecation")
public void copy(String plainText)
{
    if (android.os.Build.VERSION.SDK_INT < 11)
    {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        if (clipboard != null)
        {
            clipboard.setText(plainText);
        }
    }
    else
    {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        if (clipboard != null)
        {
            android.content.ClipData clip = android.content.ClipData.newPlainText("text", plainText);
            clipboard.setPrimaryClip(clip);
        }
    }
}

@SuppressLint("NewApi") @SuppressWarnings("deprecation")
public String paste()
{
    if (android.os.Build.VERSION.SDK_INT < 11)
    {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        if (clipboard != null)
        {
            return (String) clipboard.getText();
        }
    }
    else
    {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        if (clipboard != null && clipboard.getPrimaryClip() != null && clipboard.getPrimaryClip().getItemCount() > 0)
        {
            return (String) clipboard.getPrimaryClip().getItemAt(0).getText();
        }
    }
    return null;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM