【问题标题】:How to only paste to clipboard if it's not already there如果不存在,如何仅粘贴到剪贴板
【发布时间】:2013-11-18 20:54:46
【问题描述】:

我让用户长按TextView,这会将TextView 的文本复制到他们的Clipboard

我希望它在将TextView 的文本实际复制到他们的Clipboard 之前,它会检查他们Clipboard 上的最后一个Clip 是否与文本不同。

代码如下:

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

   if ( !(clipboard.getPrimaryClip().toString().equals(text)) )
// if ( !(clipboard.getPrimaryClip().equals(text)) )
   {
       clipboard.setPrimaryClip(ClipData.newPlainText("newClipName", text));
       Toast.makeText(getApplicationContext(),"Copied to clipboard.", 0).show(); 
   }

我只能想象getPrimaryClip() 方法没有返回StringtoString() 也不起作用。如何获取最新的Clip 作为String

【问题讨论】:

    标签: java android clipboard clipboardmanager


    【解决方案1】:
    ClipboardManager clipboard=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
    String text = textView.getText().toString();
    
    // item is the most recent Clip from the Clipboard
    ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
    
    // Gets the clipboard as text.
    String clipText = item.getText().toString(); // getText() returns CharSequence
    
    if ( !(clipText.equals(text)) )
    {
        clipboard.setPrimaryClip(ClipData.newPlainText("newClipName", text));
        Toast.makeText(getApplicationContext(),"Copied to clipboard.", 0).show(); 
    }
    

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2019-04-16
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多