7

我正在尝试使用以下侦听器将文本复制到剪贴板:

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.

4

1 回答 1

9

我建议按如下方式添加侦听器,而不是创建新类。我已经包含了如何从 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
    }
});
于 2016-07-05T23:44:25.790 回答