2011-09-09 52 views
6

我使用的是三星Galaxy S2和尝试了以下内容:上SGS2清除剪贴板(API 10)

import android.text.ClipboardManager; 
ClipboardManager clipboard = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE); 
clipboard.setText(null); 

clipboard.setText(""); 

它没有工作。想法?

+0

它崩溃了吗?异常日志?它没有用吗?你有尝试过别的吗? – Jack

+0

没有崩溃 - 只是没有清除剪贴板。 TouchWiz似乎已经实现了自己的多项目剪贴板,因此忽略了剪贴板管理器的所有API调用。它使用NoClassDef或类似的东西崩溃(我现在卸载TouchWiz)当我试图使用setPrimaryClip,因为它不在api 10中。我只是希望有一些简单的方法或一些确认TouchWiz确实忽略了剪贴板API。 – timothyjc

回答

2

你有没有试过.setPrimaryClip(ClipData剪辑)?文档读取:

公共无效setPrimaryClip(ClipData剪辑)

自:API级别11集剪贴板上的当前的主剪辑。 这是涉及正常剪切和粘贴操作的剪辑。 参数

clip要设置的剪辑数据项。

根据the docs,不推荐使用setText()。

我知道这个问题很旧,但值得一试。

+1

是的 - 该方法仅来自API 11. SGS2运行2.3,因此它不可用。 – timothyjc

+0

setPrimaryClip不能在samsung s4和s5上工作 – oscarthecat

3

他们是三星Galaxy的一个bug。它不接受将剪贴板设置为空白值。您可以尝试将其设置为空格。

clipboard.setText(" "); 

如需进一步信息检查this

+0

我会抓住我朋友的股票SGS2并测试...我的CyanogenMod上面有atm ... – timothyjc

0

明确剪辑BORD为3.0 API-11

clipboard1 =(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);

clipboard1 
      .addPrimaryClipChangedListener(new OnPrimaryClipChangedListener() { 

       public void onPrimaryClipChanged() { 
        copyText = (String) clipboard1.getText(); 
        Log.d("Copytext", copyText); 
        Toast.makeText(javaButtonTest.this, copyText, Toast.LENGTH_LONG).show(); 
        //ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
        if (clipboard1.hasText()) { 
         copyText = (String) clipboard1.getText(); 
         clipboard1.setText(""); 
        } 

       } 
      });