Suzi
Suzi

Reputation: 89

How to show toast after menu is clicked?

I have a textView and I made its text copyable and then Override 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());

}

I want to show toast "copied to clipboard" after menu is clicked, how can I do that? And my second question is why ClipManager is deprecated? what to use instead?

Upvotes: 0

Views: 337

Answers (1)

Rajan Kali
Rajan Kali

Reputation: 12953

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;
}

 } 

for SDK>=15 ,this will work

   ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
     ClipData clip = ClipData.newPlainText("label for text", "text to copy");
     clipboard.setPrimaryClip(clip);

Upvotes: 1

Related Questions