Android text spannablestringbuilder cannot be cast to java lang string

Почему я получаю эту ошибку? java.lang.ClassCastException: android.text.SpannableStringBuilder не может быть приведен к java.lang.String.

При экспорте моего элемента списка массивов, я получаю эту ошибку. Во-первых, это работает, но при обновлении моего кода, добавлении данных в мой массив, это приводит к сбою моего приложения и появляется эта ошибка, у вас есть идеи, почему это происходит?

java.lang.ClassCastException: android.text.SpannableStringBuilder не может быть приведен к java.lang.String.

Я получаю ошибку в этой строке 312 после оператора if —

Я уже пытался положить пустую строку в моем списке, как это

Но это не работает 🙁

Добавление элемента в ArrayAdapter

3 ответа

Если вы хотите, чтобы HTML-код продолжал отображаться , проблема заключается в том, что объекты, которые ArrayAdapter добавляет list_items , не являются строками. Это означает, что вы должны изменить способ определения переменной list_items из String на более общий тип последовательности символов:

Интерфейс CharSequence не имеет метода «split». Чтобы использовать «split», вам нужно вызвать toString , чтобы получить обычную строку:

Также было бы полезно, если бы вы использовали параметр типа с вашим ArrayAdapter. Использование параметра типа усложнило бы (если не невозможно) эту ошибку.

Ошибка с этой строкой в refreshInbox()

Html.fromHtml не возвращает строку, а вместо этого возвращает Spanned .

Но вам нужно передать String в add () на адаптере .

Чтобы исправить это, конвертируйте его в строку

Похоже, вы пытаетесь вставить необычный тип строки в список .

Я не Android-разработчик, но я подозреваю, что есть некоторые «полезные» ярлыки, которые он предоставляет, чтобы упростить вашу жизнь, что, вероятно, сбило бы вас с толку.

Строка Groovy по умолчанию была GString, а не String. Это сбило меня с толку несколько раз, прежде чем я привык к этому.

Источник

Почему show java.lang.ClassCastException: android.text.SpannableString не может быть приведено к java.lang.String?

При копировании String с любой страницы браузера pasteData работает правильно. Однако при копировании SpannedString из редактора отправленных элементов сообщения (поля) приложение выходит из строя и показывает это сообщение об ошибке:

где экземпляр ClipboardManager определен как clipBoard , ниже:

Все, что я пытаюсь сделать, это использовать pasteData в формате String . Как избавиться от этой ошибки? Любая помощь будет оценена по достоинству.

Читайте также:  Как сделать видеонаблюдение с смартфона через смартфон андроид

5 ответов

Я создал этот простой пример, который используется для чтения Linux uptime: public String getMachineUptime() throws IOException < String[] dic = readData().split( ); long s = (long) Array.get(dic, 1); return calculateTime(s); >private String readData() throws IOException < byte[] fileBytes; File.

Эй, кто-нибудь может помочь мне устранить эту ошибку : java.lang.ClassCastException: java.util.HashMap не может быть приведено к java.lang.String по цене in.xyz.firebase.MainActivity$1.onDataChange MainActivity.java import java.lang.String; import android.support.v7.app.AppCompatActivity; import.

Возвращает строку с теми же символами в том же порядке, что и в этой последовательности.

Вам нужно использовать следующий код.

Вы не можете привести к android.text.SpannableString , потому что item.getText() возвращает CharSequence , есть много его реализаций

SpannableString-это не строка напрямую. Итак, вы не можете бросить. но он может быть преобразован в строку. вы можете преобразовать что-то в строку с помощью конкатенации с пустой строкой.

Если ваш растянутый текст содержит только содержимое HTML, то вы можете преобразовать его с помощью Html.toHtml()

java.lang.ClassCastException: java.lang.String не может быть приведено к net.minidev.json.JSONObject JSONParser jsonParser = new JSONParser(); Object obj = jsonParser.parse(new FileReader(location.getAbsolutePath())); JSONObject jobj = (JSONObject) obj;

Я новичок в разработке android и столкнулся с проблемой, которую не могу решить. Я реализовал ExpandableListView с пользовательским Adapter . У меня есть 5 групп, и каждая группа имеет 1 дочерний элемент. Каждый элемент группы имеет тип данных: org.myapp.ui.MyClass . Теперь я пытаюсь получить.

Это сработало для меня String htmlString = String.valueOf(Html.fromHtml(contenttext,Html.FROM_HTML_MODE_COMPACT));

Вот что это сработало для меня в Kotlin году :

Похожие вопросы:

У меня есть ошибка при использовании Jaspersoft Studio с базой данных Oracle. Как только появятся какие-то данные, появится следующая строка.

Я получил эту ошибку при извлечении данных из базы данных. java.lang.String не может быть приведено к com.rahul.model.MyUser] с первопричиной java.lang.ClassCastException: java.lang.String не может.

Мне нужно сохранить данные из базы данных TextView в базу данных SQLite в формате HTML. Я использую этот код для преобразования текста из TextView в HTML-форматированную строку: public static String.

Я создал этот простой пример, который используется для чтения Linux uptime: public String getMachineUptime() throws IOException < String[] dic = readData().split( ); long s = (long) Array.get(dic.

Эй, кто-нибудь может помочь мне устранить эту ошибку : java.lang.ClassCastException: java.util.HashMap не может быть приведено к java.lang.String по цене in.xyz.firebase.MainActivity$1.onDataChange.

java.lang.ClassCastException: java.lang.String не может быть приведено к net.minidev.json.JSONObject JSONParser jsonParser = new JSONParser(); Object obj = jsonParser.parse(new.

Я новичок в разработке android и столкнулся с проблемой, которую не могу решить. Я реализовал ExpandableListView с пользовательским Adapter . У меня есть 5 групп, и каждая группа имеет 1 дочерний.

Читайте также:  What is smart view com samsung android smartmirroring android

String s = extras.getString(android.text); Я пытаюсь прочитать значения из bundle. Но я точно не знаю, какую ценность я пытаюсь прочесть. Когда я пытаюсь прочитать его с помощью getString, я получаю.

Мне нужно отправить значение параметра hostPage в мой метод bean loginDialog() . .

Источник

Why show java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String?

When copying String from any browser page, pasteData works properly. However when copying SpannedString from a message sent item editor(field), the application crashes and shows this error message:

where the ClipboardManager instance defined as clipBoard , below:

All I’m trying to do is use pasteData in String format. How to get rid of this error? Any help is appreciated.

Answers

SpannableString is not String directly. so, you can not cast. but, it can be converted to string. you can convert something to string with concatenating with empty string.

The issue’s coming from Jackson. When it doesn’t have enough information on what class to deserialize to, it uses LinkedHashMap .

Since you’re not informing Jackson of the element type of your ArrayList , it doesn’t know that you want to deserialize into an ArrayList of Account s. So it falls back to the default.

Instead, you could probably use as(JsonNode.class) , and then deal with the ObjectMapper in a richer manner than rest-assured allows. Something like this:

For me (using Java 1.6.0_26), the first snippet gives the same exception as the second one. The reason is that the Arrays.asList(..) method does only return a List , not necessarily an ArrayList . Because you don’t really know what kind (or implementation of) of List that method returns, your cast to ArrayList is not safe. The result is that it may or may not work as expected. From a coding style perspective, a good fix for this would be to change your stuff declaration to:

which will allow to add whatever comes out of the Arrays.asList(..) method.

Use String’s equals method to compare Strings. The == operator will just compare object references.

Источник

Использование RichText в Android. Spannable

Привет Хабраобщество! Эта статья об использовании Spannable в Android. Предназначен он для стилизации текста. Если Вас интересует как реализовать нечто подобное:

тогда добро пожаловать под кат. Статья ориентированная на разработчиков, у которых нет большого опыта разработки под Android.

Читайте также:  No data android navigation

Теория

Spannable — интерфейс, который описывает маркировку обычного текста некими объектами. Задание этих объектов заключается в присвоению части текста некоторого определенного стиля. Такими маркировочными объектами могут быть экземпляры классов, которые реализуют интерфейс ParcelableSpan. Добавление маркировки осуществляется методом:

Удаление, соответственно, методом:

Теории немного, перейдем сразу к практике.

Практика

Для освоения практики необходимо создать android проект или открыть уже существующий. Я создал чистый проект, на главную activity разместил один TextView. Идем в метод, где будем инициализировать наш TextView (у меня onCreate) и добавляем следующий текст:

Итак, разберемся что же мы написали. SpannableString — класс, который реализует интерфейс Spannable (с другими реализациями можно ознакомится на сайте официальной документации). UnderlineSpan — реализация ParcelableSpan, маркирует часть текста как подчеркнутый (в нашем примере это с 8-ой по 17-тую букву). Флаг Spanned.SPAN_EXCLUSIVE_EXCLUSIVE обозначает, что наш span не будет расширятся на вставки текста слева или справа от маркированной части. (Со всеми флагами можно ознакомится на официальном сайте, при работе с текстами readonly они не столь важны).

Также здесь ми использовали еще одну реализацию ParcelableSpanStyleSpan. Как вы уже догадались, с его помощью можно маркировать текст как полужирный (Typeface.BOLD) или курсив (Typeface.ITALIC).

С кодом ми разобрались, запускаем наш проект и смотрим на результат. Текст должен выглядеть следующим образом:

Хорошо, идем дальше: добавим на наше activity кнопку, а в инициализирующий метод следующий текст:

На этот раз не будем разбирать код, ничего нового уже для нас нет. Мы использовали маркировку курсивом, которую я описал выше. Запускаем, смотрим.

Мы смогли вывести стилизованный текст на кнопку.

Пойдем еще дальше, реализуем обработчик события клика кнопки, в нем пишем следующий код:

Здесь у нас появляется новый класс — ForegroundColorSpan, который задает цвет нашему тексту, в примере мы задали зеленой. Мы его используем в паре с StyleSpan. Запускаем приложение, смотрим на результат.

Мы смогли запихнуть стилизованный текст даже в Toast. Также мы показали, что для одной части текста можно использовать несколько маркировок со стилями.

Вместо заключения

В примере мы использовали только некоторые из доступных стилей, больший список можно посмотреть на сайте разработчиков. Думаю вы сможете поэкспериментировать с ними.

Целью статьи было в доступной форме показать столь сильный и простой инструмент для стилизации своего приложения разработчикам, которые не знали о его существовании или просто не использовали его. Надеюсь что статья будет полезна.

Источник

Оцените статью