Как обрезать TextView, оставив определенное количество символов в конце текстового представления в Android Studio? - PullRequest
0 голосов
/ 09 января 2020

У меня есть TextView, где я устанавливаю текст (например: Аарон Тейлор Джонсон [Участник] ). TextView должен усечь, где [Участники] должны присутствовать даже после усечения. Что-то вроде этого:

Аарон Тейлор Джо ... [Участник]

Аарон Тей ... [Участник]

Может ли кто-нибудь мне помочь?

Ответы [ 3 ]

0 голосов
/ 09 января 2020

Вы можете сделать это, используя атрибут xml textView следующим образом.

<TextView
        android:id="@+id/tv"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="An example"
        android:singleLine="true"
        android:ellipsize="middle"
        />
0 голосов
/ 09 января 2020

Сначала вы можете использовать атрибут TextView android: ellipsize = "middle", но это не решит вашу проблему, так как оно обрезает ее в середине текста, не имеет значения, если оно также обрезает имя [Участник] .

Вам нужны два TextView в одном LinearLayout, 1-й TextView для общего текста и 2-й для имени участника.

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:text="Hello Lorem Ipsum Lorem Ips sdafjdskafj kdlsajf kljds gfsad fsda "
        android:ellipsize="end" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Participant"/>

</LinearLayout>
0 голосов
/ 09 января 2020

Проверка

if (textview.getText().toString().contains([Participant]))
{
String str = textview.getText().toString() ; 
textview.setText(str.subString(1,k)+"...[Participant]") ; 
} 

Где k - длина начальной строки, которую вы хотите в вашем textView.

...