【问题标题】:How to show toast after menu is clicked?单击菜单后如何显示吐司?
【发布时间】:2015-09-26 15:20:22
【问题描述】:

我有一个 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 被弃用了?改用什么?

【问题讨论】:

    标签: android deprecated toast clipboardmanager


    【解决方案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);
    

    【讨论】:

    • 我想在我点击菜单后显示 toast,这个代码在菜单出现后立即显示 toast
    • 它不起作用,首先缺少return语句,在我修复它之后说“方法不会从它的超类覆盖
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    相关资源
    最近更新 更多