TextView, как отобразить подсказку для пользователя - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно установить подсказку для моего TextView, если строка слишком длинная, чтобы уместиться внутри телевизора (я установил максимальную длину 20), тогда она отображает только часть из них с «...» в конце. Я хочу отображать подсказку с полной строкой, когда я нажимаю на ТВ. Является ли это возможным? И если да, то как это сделать?

like this, but without close button, just disappearing after short amount of time

Внутренняя деятельность:

textCompany.setText(testDb.getCompanyName(id));
textCompany.setEllipsize(null);

И XML:

 <TextView
            android:id="@+id/textCompany"
            android:layout_width="match_parent"
            android:layout_below="@+id/textId"
            android:layout_height="wrap_content"
            android:maxLength="20"
            android:ellipsize="end"
            android:gravity="end"
            android:layout_marginEnd="20dp"
            android:textSize="17sp"

            android:text="verylongstringjusttotestifthisworksandletshopeitwill" />

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Вы можете сделать это с помощью простого onClickListener. Сначала вы проверяете длину текста, затем, если оно превышает 20 символов, вы берете первые 20 и добавляете три точки в конец и отображаете это. В то же время вы сохраняете полный текст во временную переменную и отображаете его, когда кто-то щелкает по вашему TextView.

         @Override
         protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

            final TextView textView = findViewById(R.id.textCompany);
            String shortMessage;
            final String message = textView.getText().toString();
            if(message.length() >= 20){
                shortMessage = message.substring(0,19)+"...";
                textView.setText(shortMessage);
            }
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();

                }
            });

        }

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

android:clickable="true"
0 голосов
/ 13 ноября 2018

Вы упомянули поведение из-за

андроида: ellipsize = "Конец"

В конце текста отображается «Некоторый текст ...», если он не умещается по ширине. Вы можете программно изменить значение эллипса на none, чтобы отобразить полный текст при нажатии.

myTextView.setEllipsize(null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...