2013-04-18 2 views
4

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

String str1 = "TEST1"; // length = 5 
String str2 = "TEST2"; // length = 5 

TextView textView = (TextView)findViewById(R.id.text_view); 

textView.setText(str1 + '\n' + str2); 

Но окончательную длину текста равно 11.

Вопрос:

Есть ли какой-либо специальный символ или метод, который позволит мне достичь того же результата внутри моего TextView без увеличения длины текста?

То, что я пытаюсь достичь:

У меня есть формат данных, который хранится в формате JSON. Похоже

[{type: line, params: {line params}}, {type: text, params: {text params}, ...] 
  • Существует всегда линия в начале

  • Каждый абзац начинается с линии (так оно действует как разделитель строки, которая хранится в начале строки , а не в конце)

  • Размер каждого строка равна 1, то есть каждый линии считается как один символом

  • Каждого абзац заканчивается текст «s последнего символа (не '\ п')

  • Есть некоторые линии Титулов (как BulletList, Числовой список, Пункт)

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

+0

Если вы добавили некоторую информацию о том, что вы пытаетесь достичь, мы могли бы предложить альтернативы. Но для этого простого вопроса моя догадка - нет. – Warpzit

+3

нет его невозможно – DjHacktorReborn

+0

@Warpzit Я добавил некоторую информацию о том, чего я пытаюсь достичь. Спасибо за совет. – 2013-04-18 12:53:16

ответ

-1

На ваш вопрос мой ответ будет отрицательным. Но вы можете сделать свой собственный TextView и изменить, как он вычисляет длину текста, например, игнорируя «/ n» при подсчете длины.

+0

Возможно, это то, что мне нужно, потому что ответ на мой вопрос кажется «нет». Я попробую это. Большое спасибо. – 2013-04-18 13:20:08

-1

Ну есть хитрый способ

String str1 = "TEST1"; // length = 5 
     String str2 = "TEST2"; // length = 5 

     textView = (TextView)findViewById(R.id.textView1); 
     textView.setWidth(120); 
     textView.setTextSize(20); 

     textView.setText(str1 + str2); 

//textView.getText().toString().length() length = 10 

в Xml

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:text="TextView" /> 
+0

Не работает. Все, что я получаю, это «TEST1TEST2» с большим размером. Линия не сломана. – 2013-04-18 11:34:12

+0

Отредактировано, пожалуйста, см. –

+0

Теперь это работает, и результатом является «TEST1T (_newline_) EST2» – 2013-04-18 13:00:13

0

Возьмите два TextViews и добавьте ниже другого .Затем вы не найдете любую проблему длины.

like : <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView1" /> 
<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView1" 
    android:text="TextView2" /> 
</RelativeLayout> 
+0

Как я сказал, я хотел бы достичь того же результата в моем текстовом элементе – 2013-04-18 11:29:13

0
String str1 = "TEST1"; 
String str2 = "TEST2"; 

TextView text=(TextView)vi.findViewById(R.id.text); 
text.setText(str1); 
text.append(Html.fromHtml(< br>)); 
text.append(str2); 

Надеется, что это работает :)

+0

. Вам даже не нужно запускать приложение что он не работает (_append_ - это ключ). Кроме того, я действительно считаю, что «проверить и видеть» намного лучше, чем «надеюсь, что это работает». Спасибо за ответ в любом случае) – 2013-04-19 17:22:47

+0

ok ok ok его работая отлично для меня, n делаю ад с вашими проблемами: p –

+0

Но окончательная длина текста более 10, не так ли? – 2013-04-26 19:06:48

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