微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android如何从剪贴板上获取字符串onPrimaryClipChanged?

我正在尝试使用以下侦听器将文本复制到剪贴板中:
import android.content.ClipboardManager.OnPrimaryClipChangedListener;
import com.orhanobut.logger.Logger;

public class ClipboardListener implements OnPrimaryClipChangedListener
{

    public void onPrimaryClipChanged()
    {
        // do something useful here with the clipboard
        // use getText() method
        Logger.d("Clipped");
    }
}

监听器初始化如下:

ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener( new ClipboardListener());

将文本复制到剪贴板onPrimaryClipChanged后,但是我不知道如何使用ClipboardManager.getPrimaryClip()在此方法获取复制的文本,因为该方法不能从上下文中获得,也不会在onPrimaryClipChanged的参数中传递.

解决方法

我建议如下添加监听器,而不是创建一个新类.我已经包含了如何从ClipData获取文本.

你提到无法在监听器中访问你的上下文,我在下面的代码添加了一条注释,显示了如何执行此操作.

ClipboardManager clipBoard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener(new OnPrimaryClipChangedListener() {

    @Override
    public void onPrimaryClipChanged() {
        ClipData clipData = clipBoard.getPrimaryClip();
        ClipData.Item item = clipData.getItemAt(0);
        String text = item.getText().toString();

        // Access your context here using YourActivityName.this
    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐