2012-04-30 5 views
1

TextViewでコピー貼り付けを有効にしたいと思います。クロスバージョン(api 7(eclair)を開始)のコピーをAndroidにコピーしますか?

私はAndroidのドキュメントでこれらの非常に素晴らしい説明が見つかりました: http://developer.android.com/guide/topics/clipboard/copy-paste.html

をしかし、それは唯一のバージョン11から始まる作品 - ハニカム!

私は、現時点で大部分のユーザーにも役立つものが必要です。これは、ジンジャーブレッド、フリオ、エクレアでも機能しなければならないことを意味します。

私は何を使用しますか?

答えて

3

android.textパッケージのClipboardManagerを使用してください。彼らはテキスト以外のクリッピングをサポートし始めたので別のパッケージに移動しましたが、下位互換性のために古い名前で引き続き使用できます。

あなたはまだのようなもので羽目になる:

これを証明する
ClipboardManager cm=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE); 

    cm.setText("something"); 

Here is a sample project

+0

そして、どのように私は有効にしますTextViewの標準コピー貼り付け(EditTextに表示されているようなもの)?これはクリップボードにコピーされますが、私は標準的なメカニズムが必要です。 P.D.私はそれのために新しいスレッドを作ります、それは別の質問です。 – Ixx

+0

新しい質問のスレッドはこちら:http://stackoverflow.com/questions/10386084/how-do-i-enable-standard-copy-paste-for-a-textview-in-android – Ixx

1

これらは、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; 
} 
関連する問題