0

我有一个 textView 并使其文本可复制,然后覆盖 onCreateContextMenu:

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    //user has long pressed your TextView
    menu.add(0, v.getId(), 0, "Copy");
    TextView yourTextView = (TextView) v;
    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
    clipboard.setText(yourTextView.getText());

}

单击菜单后,我想显示“复制到剪贴板”的吐司,我该怎么做?我的第二个问题是为什么 ClipManager 被弃用了?改用什么?

4

1 回答 1

1
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    //user has long pressed your TextView
    menu.add(0, v.getId(), 0, "Copy");
    TextView yourTextView = (TextView) v;
    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

    clipboard.setText(yourTextView.getText());
}

    @Override
public boolean onContextItemSelected(MenuItem item) {

    super.onContextItemSelected(item);

    if (item.getTitle() == "Copy") {
        Toast.makeText(getApplicationContext(), "copied to clipboard", Toast.LENGTH_LONG).show();

    }
    return true;
}

 } 

对于 SDK>=15 ,这将工作

   ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
     ClipData clip = ClipData.newPlainText("label for text", "text to copy");
     clipboard.setPrimaryClip(clip);
于 2015-09-26T15:25:15.170 回答