android读取剪切板的方法,Android获取粘贴板内容
獲取黏貼版內(nèi)容的相關(guān)代碼需要在UiThread上運行,所以沒法即時獲得數(shù)據(jù)并返回。
最后的解決辦法是,在每次onResume的時候獲取黏貼板的內(nèi)容并保存,程序需要黏貼板內(nèi)容時直接返回保存的這個值
public void onResume(Activity page) {
// 因為獲取黏貼板的內(nèi)容需要在UiThread上運行,所以沒法直接獲取到(因為return的時候runnable里的內(nèi)容很可能還沒執(zhí)行完)
// 故改為在OnResume的時候保存粘貼板里的內(nèi)容,然后直接返回保存的內(nèi)容
getPasteString();
}
// 從黏貼板獲取數(shù)據(jù)
private void getPasteString()
{
// 獲取并保存粘貼板里的內(nèi)容
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();
}
}
// 復(fù)制到粘貼板
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 "";
}
}
總結(jié)
以上是生活随笔為你收集整理的android读取剪切板的方法,Android获取粘贴板内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zcmu1048
- 下一篇: android粘贴,Android复制粘