【问题标题】:Android: crash at trying to paste nothing [duplicate]Android:尝试粘贴任何内容时崩溃[重复]
【发布时间】:2016-01-01 23:05:12
【问题描述】:

基本上,我的活动上有一个按钮,可以粘贴剪贴板中的文本。我的问题是,在对其进行测试后,如果剪贴板中没有可粘贴的内容,应用程序就会崩溃(例如,没有将任何内容复制到剪贴板)。如果剪贴板中有东西,粘贴功能就会起作用,所以我想知道如何处理它。我尝试处理这种崩溃,但它对我不起作用。

public void PasteText(View v)
{
    TextView mainText = (TextView) findViewById(R.id.editext);
    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
    ClipData cData = clipboard.getPrimaryClip();
    ClipData.Item item;
    String text = "";
    if(cData.getItemCount() > 0)
    {
        item = cData.getItemAt(0);
        text = (String) item.getText();
        mainText.append(text);
        return;
    }
    else
    {
        item = null;
        mainText.append(text);
        return;
    }
}

Logcat:

01-01 15:07:56.860: E/AndroidRuntime(10567): java.lang.IllegalStateException: 无法执行活动的方法

01-01 15:07:56.860: E/AndroidRuntime(10567): at android.view.View$1.onClick(View.java:4025)

01-01 15:07:56.860:E/AndroidRuntime(10567):原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int android.content.ClipData.getItemCount()”

01-01 15:07:56.860: E/AndroidRuntime(10567): at com.karimo.tester.MainForm.PasteText(MainForm.java:109)

01-01 15:07:56.860: E/AndroidRuntime(10567): ... 13 更多

【问题讨论】:

  • 您应该发布崩溃中的堆栈跟踪,以便我们更好地帮助您帮助自己
  • ClipData.getItemCount() 这会在您单击按钮时返回 null。调试你的代码。
  • public String getTextFromClipboard(){ String text="";剪贴板管理器我的剪贴板; myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);剪辑数据剪辑数据=空; if (myClipboard != null) { clipData = myClipboard.getPrimaryClip(); if (clipData!=null&&clipData.getItemCount()>0){ ClipData.Item item = clipData.getItemAt(0);文本 = item.getText().toString(); } } 返回文本; }

标签: android copy-paste clipboardmanager


【解决方案1】:

修复它。如果 cData 为 null,则需要处理它。

【讨论】:

    猜你喜欢
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多