在TextView中剪切操作时防止应用程序崩溃

时间:2014-01-06 10:47:52

标签: android textview

我将带有setTextIsSelectable(true)的文字可选TextView放入Android版面中,文字由Html.fromHtml(sometexts)设置。
它允许用户复制文本很好。 我的JellyBean设备在所选文本的顶部为小气球提供剪切/复制/粘贴按钮。

但是当用户意外点击复制菜单左侧的剪切图标时,它会崩溃。

日志如下所示,但在我的应用程序中没有必要处理此异常 如何防止应用程序崩溃?

01-06 19:29:16.025    2048-2048/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.ClassCastException: android.text.SpannableString cannot be cast to android.text.Editable
        at android.widget.TextView.deleteText_internal(TextView.java:8865)
        at android.widget.TextView.onTextContextMenuItem(TextView.java:8315)
        at android.widget.Editor$ActionPopupWindow.onClick(Editor.java:3556)
        at android.view.View.performClick(View.java:4114)
        at android.view.View$PerformClick.run(View.java:17097)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4885)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
        at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:0)

我不确定,我现在无法测试,但可能会尝试将其放入TextView xml中:

android:bufferType="spannable"

如果它仍然不起作用,您可以自己实施可选事件的操作。 看看这个问题的答案: Android- How can I show text selection on textview?