如何在 Android 中访问剪贴板数据?

Tap*_*tro 5 java clipboard android

我如何从剪贴板获取数据。我想获取数据并在 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();


        }
    }
Run Code Online (Sandbox Code Playgroud)

并注册。

IntentFilter intentFilter1 = new IntentFilter(String.valueOf(Intent.FILL_IN_CLIP_DATA));

ctx.registerReceiver(clipBoardDataManager,intentFilter1);
Run Code Online (Sandbox Code Playgroud)

我还是不明白..请帮忙!!!

Zak*_*han 8

爪哇

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
    }
});
Run Code Online (Sandbox Code Playgroud)

科特林

val clipBoardManager = context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
clipBoardManager.addPrimaryClipChangedListener {
    val copiedString = clipBoardManager.primaryClip?.getItemAt(0)?.text?.toString()
    // Your code
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助