У меня есть метод, который проверяет, находится ли кавычка, сгенерированная из API, в пределах 130 символов, прежде чем разделить ее на две части, передняя часть - это кавычка, а вторая часть - автор.
Вывод html цитаты API: (например) «Доброта в словах создает уверенность. (Лао Цзы)» *
Я хочу показать их в двух отдельных текстовых представлениях и удалить скобки. Textview 1 - Цитата Textview 2 - Автор (убрал скобки)
К сожалению, приложение зависало и иногда показывало IndexOutOfBoundsException, есть ли другой способ сделать это?
Спасибо заранее.
private void check(String quote){
//check length
int length = quote.length();
if (length <= 130) {
//split to quote and author strings
String[] parts = quote.split(Pattern.quote("(")); // Split on ( into 2 parts, quote and author
String part1 = parts[0]; //quote
String part2 = parts[1]; //author with )
String removedSymbolsPart2 = part2.replaceAll("\\)", ""); //remove ) symbol
String finalQuote = Html.fromHtml(part1).toString();
String finalAuthor = Html.fromHtml(removedSymbolsPart2).toString();
quoteTextViewMain.setText(finalQuote);
authorTextViewMain.setText(finalAuthor);
} else {
//get another quote
getQuote();
}
}
Ошибка индекса вне границы:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.amethyst.secretgarden, PID: 21802
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.amethyst.secretgarden.MainActivity.check(MainActivity.java:83)
at com.amethyst.secretgarden.MainActivity.access$000(MainActivity.java:24)
at com.amethyst.secretgarden.MainActivity$4.success(MainActivity.java:106)
at com.amethyst.secretgarden.MainActivity$4.success(MainActivity.java:103)
at com.github.kittinunf.fuel.core.DeserializableKt$response$7.invoke(Deserializable.kt:150)
at com.github.kittinunf.fuel.core.DeserializableKt$response$7.invoke(Unknown Source:4)
at com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Deserializable.kt:192)
at com.github.kittinunf.fuel.core.DeserializableKt$response$asyncRequest$1$1.invoke(Unknown Source:0)
at com.github.kittinunf.fuel.core.RequestExecutionOptionsKt$sam$java_lang_Runnable$0.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:226)
at android.app.ActivityThread.main(ActivityThread.java:7231)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:913)
I/Process: Sending signal. PID: 21802 SIG: 9