我正在尝试使用以下侦听器将文本复制到剪贴板中:
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 } });