[英]Enable Copy-paste for all android api
我正在寻找一种在每个Android版本中从剪贴板复制和粘贴的方法。 现在,我只知道如何在API 11+中执行此操作。
copy.setOnLongClickListener(new View.OnLongClickListener()
{
@SuppressLint({ "NewApi", "NewApi" })
@Override
public boolean onLongClick(View v)
{
clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
clipdata = ClipData.newPlainText("simple text", copy.getText().toString());
clipboard.setPrimaryClip(clipdata);
Toast.makeText(getApplicationContext(), "Copied to clipboard..", Toast.LENGTH_SHORT).show();
return true;
}
});
paste.setOnLongClickListener(new View.OnLongClickListener()
{
@SuppressLint({ "NewApi", "NewApi" })
@Override
public boolean onLongClick(View v)
{
clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
String pasteData = "";
item = clipboard.getPrimaryClip().getItemAt(0);
pasteData = item.getText().toString();
paste.setText(pasteData);
Toast.makeText(getApplicationContext(), "Pasted", Toast.LENGTH_SHORT).show();
return true;
}
});
谢谢您的帮助。
在v11中未添加ClipboardManager,该文档是错误的。 在v11中对其进行了重新设计。 您仍然可以在文档中看到旧的不推荐使用的功能。 进行版本检查,并在旧版本上使用旧功能,并在新版本上使用新功能。 请参见ClipboardManager的getText,hasText和setText。
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText("text to clip"); //
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData.newPlainText("text label","text to clip");
clipboard.setPrimaryClip(clip); //
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.