【问题标题】:java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.Stringjava.lang.ClassCastException: android.text.SpannableString 不能转换为 java.lang.String
【发布时间】:2015-10-28 14:16:34
【问题描述】:

这将以等宽字体显示。前四个空格 将被剥离,但所有其他空白将被保留。

String letterStr = null;
letterStr = (String)((TextView)view).getText();

【问题讨论】:

  • getText() of a TextViewEditText 将返回 CharSequence 的一些实现,这不一定是 String
  • 这个错误并不总是反复出现,有时会发生,为什么?犹豫!

标签: java android


【解决方案1】:

String 包含 html 标记,android 将其视为 Spannable

您可以将 getText() 的返回值分配给一个 CharSequence 对象,该对象是 StringSpannable 的超类,或者将转换替换为 toString()

letterStr = ((TextView)view).getText().toString();

前者会保留 html 标记,后者不会

【讨论】:

  • 我遇到了同样的问题“致命异常:java.lang.ClassCastException android.text.SpannedString 无法转换为 android.text.Spannable”。我使用了 textview.setText(Html.fromHtml(mergedHTML) );我在 GestureDetector gestureDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener() { @Override public void onLongPress(MotionEvent e) { super.onLongPress(e); textview.setTextIsSelectable(true);}} 中遇到问题});
猜你喜欢
  • 2015-02-13
  • 2011-06-07
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 2021-04-30
  • 1970-01-01
相关资源
最近更新 更多