我刚刚发现此代码仅在android 2.x上崩溃我的应用程序
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText(textView1.getText());
我想...我需要在运行此方法之前添加检查android版本,这是允许在Android 2.x上运行的正确代码吗?
谢谢!
答案 0 :(得分:5)
剪贴板API在Android SDK的第11级已更改。以下是一些代码来处理arinkverma中的两个版本。
我希望有一天能进入支持库。
@SuppressWarnings("deprecation")
public void putText(String text){
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES. HONEYCOMB) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(text);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = ClipData.newPlainText("simple text",text);
clipboard.setPrimaryClip(clip);
}
}
@SuppressWarnings("deprecation")
public String getText(){
String text = null;
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES. HONEYCOMB ) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE);
text = clipboard.getText().toString();
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE);
text = clipboard.getText().toString();
}
return text;
}
答案 1 :(得分:1)
感谢Snicolas提供参考。我希望这能解决问题。还记得包含api级别的库,否则你将在构建时遇到错误。
构建目标已设置为Api 7到15,最好是10 预览清单文件
<uses-sdk android:maxsdkversion="15" android:minsdkversion="7" android:targetsdkversion="10"></uses-sdk>
答案 2 :(得分:1)
Snicolas的版本非常好。 但getText()的else部分有错误。
完整版是:
@SuppressWarnings("deprecation")
public String getText(Activity a){
String text = null;
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB ) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) a.getSystemService(Context.CLIPBOARD_SERVICE);
text = clipboard.getText().toString();
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) a.getSystemService(Context.CLIPBOARD_SERVICE);
text = clipboard.getPrimaryClip().getItemAt(0).getText().toString();
}
return text;
}