我如何从剪贴板获取数据。我想获取数据并在 toast 中显示。意味着在我的 android 手机中的任何编辑文本中.. 什么时候长按并复制一些字符串值.. 那应该是 toast。我怎样才能做到这一点?在我得到的每个教程中,他们都从指定的 editText 中复制。我想在我手机的任何地方复制一些文本..我只需要评估那个特定的字符串......
并且 clipboard.getText();
也不工作。
我试过了
public class ClipBoardDataManager extends BroadcastReceiver {
public ClipBoardDataManager() {
}
@Override
public void onReceive(Context context, Intent intent) {
String callNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
ClipboardManager clipboard = (ClipboardManager) ctx.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData myClip = ClipData.newPlainText("text", clipboard.getText());
clipboard.setPrimaryClip(myClip);
ClipData abc = clipboard.getPrimaryClip();
ClipData.Item item = abc.getItemAt(0);
Toast.makeText(ctx,item.toString(),Toast.LENGTH_SHORT).show();
}
}
并注册。
IntentFilter intentFilter1 = new IntentFilter(String.valueOf(Intent.FILL_IN_CLIP_DATA));
ctx.registerReceiver(clipBoardDataManager,intentFilter1);
我还是不明白..请帮忙!!!
最佳答案
Java
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
}
});
Kotlin
val clipBoardManager = context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
clipBoardManager.addPrimaryClipChangedListener {
val copiedString = clipBoardManager.primaryClip?.getItemAt(0)?.text?.toString()
// Your code
}
希望对你有帮助
关于java - 如何在 Android 中访问剪贴板数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42806895/