1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android读取剪切板的方法 Android获取粘贴板内容

android读取剪切板的方法 Android获取粘贴板内容

时间:2023-01-08 19:38:19

相关推荐

android读取剪切板的方法 Android获取粘贴板内容

获取黏贴版内容的相关代码需要在UiThread上运行,所以没法即时获得数据并返回。

最后的解决办法是,在每次onResume的时候获取黏贴板的内容并保存,程序需要黏贴板内容时直接返回保存的这个值

public void onResume(Activity page) {

// 因为获取黏贴板的内容需要在UiThread上运行,所以没法直接获取到(因为return的时候runnable里的内容很可能还没执行完)

// 故改为在OnResume的时候保存粘贴板里的内容,然后直接返回保存的内容

getPasteString();

}

// 从黏贴板获取数据

private void getPasteString()

{

// 获取并保存粘贴板里的内容

try {

activity.runOnUiThread(new Runnable() {

@Override

public void run() {

ClipboardManager clipboard = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);

ClipData clipData = clipboard.getPrimaryClip();

if (clipData != null && clipData.getItemCount() > 0) {

CharSequence text = clipData.getItemAt(0).getText();

pasteString = text.toString();

Log.d(TAG, "getFromClipboard text=" + pasteString);

}

}

});

} catch (Exception e) {

Log.e(TAG, "getFromClipboard error");

e.printStackTrace();

}

}

// 复制到粘贴板

public class copyToClipboard implements Method {

@Override

public String Execute(String args, String callBack) {

try {

final String argsString = args;

activity.runOnUiThread(new Runnable() {

@Override

public void run() {

ClipboardManager clipboard = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);

ClipData clipData = ClipData.newPlainText("text", argsString.trim());

clipboard.setPrimaryClip(clipData);

}

});

} catch (Exception e) {

e.printStackTrace();

}

return "";

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。