2017-02-13 3 views
0

У меня есть одно предложение с 3 TextView в моем RecyclerView. Картина, как показано ниже:Добавить другое Word в TextView Android

enter image description here

В этой картине, у меня есть одно предложение в 3 TextView, есть "1" "HOT, MORE ЧИЛИ" и "Пицца". Это мой RecyclerView Binding код:

try { 
    view.txtArticlesName.setText(/*orderList.getJSONObject(position).getString("quantityValue") +*/ 
          /*orderList.getJSONObject(position).getString("spesial-request").replaceAll("[\\\"\\[\\]]", "") + */ 
            orderList.getJSONObject(position).getString("bezeich")); 
    view.txtQty.setText(orderList.getJSONObject(position).getString("quantityValue")); 
    view.txtReqList.setText(orderList.getJSONObject(position).getString("spesial-request").replaceAll("[\\\"\\[\\]]", "")); 

    } catch (JSONException e) { 
        e.printStackTrace(); 
    } 

Я хочу присоединиться все TextView только с одной «TextView` динамически. Постараюсь это:

view.txtArticlesName.setText(/*orderList.getJSONObject(position).getString("quantityValue") +*/ 
          /*orderList.getJSONObject(position).getString("spesial-request").replaceAll("[\\\"\\[\\]]", "") + */ 
            orderList.getJSONObject(position).getString("bezeich")); 

Но ее не работает, его не связывают данные, поэтому TextView просто показать текст по умолчанию «Hello World». Может TextView сделать это? Я тоже читал около Spannable, но я не знаю, как его работа по добавлению нового слова в один TextView. Или есть другой способ сделать это? Любое предложение и ответ будут полезны для меня. Спасибо, прежде.

+1

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

+0

@farazkhonsari My Log не показывает ничего плохого. Когда я нажимаю пиццу или другую пищу из другого RecyclerView, ее объявление об успехе в этом RecyclerView, но TextView просто показывает «Hello World» –

ответ

0

Я решил эту проблему с немного разочарован.Вот мой окончательный код:

try { 
    view.txtArticlesName.setText(orderList.getJSONObject(position).getString("quantityValue") + " " + 
     orderList.getJSONObject(position).optString("spesial-request").replaceAll("[\\\"\\[\\]]", "") + " " + 
     orderList.getJSONObject(position).getString("bezeich")); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

с GetString:

with getString

с строка_опциями:

with optString

меняет getString с optString и оператором + работой в настоящее время. Я не полностью взялся за то, почему getString не работает, но optString работа.

Большое спасибо за все anwser, +1 от меня

1

Просто выполните строки в вашем TextView.

String string1 = "Hello", string2 = "HOT CHILLI", string3 = "PIZZA"; 

TextView textView = (TextView) findViewById(R.id.your_textView); 
textView.setText(string1.concat(string2).concat(string3)); 

Или вы также можете добавить его в существующий текст TextView.

textView.setText(textView.getText().toString.concat(string2)); 

EDIT:

Сбор данных от сервера в переменных String, а затем передать эти переменные в TextView.

String string1, string2, string3; 


try { 
    string1 = orderList.getJSONObject(position).getString("quantityValue"); 
    string2 = orderList.getJSONObject(position).getString("spesial-request").replaceAll("[\\\"\\[\\]]", ""); 
    string3 = orderList.getJSONObject(position).getString("bezeich")); 
    String final = string1.concat(string2).concat(string3); 
    view.txtView.setText(final); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
+0

, его не работает, мой «TextView» не связывает данные с моего сервера –

+0

@MarioMargoPradipta проверяет мое редактирование. – Rachit

+0

спасибо за ответ, я думаю, что он не работает, если мы все еще используем 'getString'. Я отправляю свой ответ ниже. Еще раз спасибо –

1

Использование '+' оператора или StringBuilder соединить 2 или более строк и установить результирующую строку в одну TextView.

Если вы хотите иметь какую-то часть текста с другим шрифтом, цветом, размером, жирными и т.д., вы можете использовать Spannable строку или Html.fromHtml()

+0

+ оператор его не работает для меня, и я не знаю почему. Я попробую ваше предложение о String Builder –

1

вы можете сделать и использовать spannable строку, как показано ниже:

private void addSpannableString(){ 

     //"1" "HOT, MORE CHILLI" and "Pizza" 
     String one= "1"; 
     String two= "HOT, MORE CHILLI"; 
     String three= "Pizza"; 
     String mergeString= one + two + three; 
     Spannable spannable = new SpannableString(mergeString); 
     StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); 
     spannable.setSpan(boldSpan, mergeString.indexOf(two), mergeString.indexOf(three), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
     textview.setText(mergeString); 
    } 

Существует множество способов, позволяющих сделать пробелы, включая цвета и шрифты

1

Используйте TextView.append(CharSequence text), чтобы добавить в него больше текста.

Append указанный текст в буфер дисплейной TextView, в обновлении это BufferType.EDITABLE, если он не был уже редактируемые


1

Разница между GetString И OptString является:

От Documentation

строка_опций возвращает пустую строку (""), если указанный вами ключ не есть. С другой стороны, GetString бросает исключение JSON.

Используйте getString, если это ошибка в данных, отсутствует или optString, если вы не уверены, если он будет там.

+0

@Mario Margo Pradipta проверить объяснение .. – rafsanahmad007

+0

если это так, почему мы не всегда используем 'optString'? –

+0

Когда данные необходимы, чтобы показать ... нужно использовать Getstring .. это также полезно для отладки .. если в JOSN отсутствуют какие-либо значения – rafsanahmad007

Смежные вопросы