复制粘贴无法在Android 2.3.6(姜饼)中工作

时间:2013-08-18 17:38:37

标签: android

我在我的活动中有一个按钮和一个edittext框,按下按钮我将edittext中的所有文本复制到剪贴板。代码在我检查的所有设备中都运行正常,但在运行Android 2.3.6版的Samsung GT-S6802中除外。 我无法发现这个问题。请帮助。

btn3.setOnClickListener(new View.OnClickListener() {
            @SuppressLint("NewApi")
            @Override
            public void onClick(View v) {
                if (edit.getText().length() > 0) {
                    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                    clipboard.setText(edit.getText());
                    Toast.makeText(getApplicationContext(),
                            "Text is Copied Press long to paste anywhere",
                            Toast.LENGTH_SHORT).show();
                }
            }
        });

2 个答案:

答案 0 :(得分:5)

对于大于HoneyComb的版本,ClipboardManager包从android.text.ClipboardManager更改为android.content.ClipboardManager。正确的代码如下所示。

 int currentapiVersion = android.os.Build.VERSION.SDK_INT;
                            if (currentapiVersion >= android.os.Build.VERSION_CODES.HONEYCOMB) {
                                android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                                ClipData clip = ClipData.newPlainText("label",
                                        edit.getText());
                                clipboard.setPrimaryClip(clip);
                            } else {
                                android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
                                clipboard.setText(edit.getText());
                            }

答案 1 :(得分:0)

可能会导入类android.content.ClipboardManager,这仅适用于API> = 11 on。由于2.3.6是API 10,应用程序崩溃我想说java.lang.NoClassDefFoundError

请参阅Android clipboard code that works on all API levelsHow to copy text programmatically in my Android app? 对于有效的解决方案。仍然,dalvikvm报告错误,因为它尝试验证所有类,但应用程序不会崩溃。

要防止加载无法验证的类,请参阅http://android-developers.blogspot.de/2010/07/how-to-have-your-cupcake-and-eat-it-too.html,其中在运行时实例化了正确的版本相关抽象类。