我正在尝试使用以下侦听器将文本复制到剪贴板中:
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() https://developer.android.com/reference/android/content/ClipboardManager.html#getPrimaryClip()%22getPrimaryClip()%22因为该方法在上下文中不可用,并且未在 param 中传递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
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)