TextView,如何为用户显示提示

时间:2018-11-13 09:30:31

标签: android textview

我需要为我的TextView设置提示,如果String太长而无法放入电视中(我将最大长度设置为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 :(得分:1)

您提到的行为是由于

android:ellipsize =“ end”

如果宽度不合适,则显示带有“ Some text ...”的文本结尾。 您可以通过编程将ellipsize值更改为none,从而在Click上显示全文。

myTextView.setEllipsize(null);

答案 1 :(得分:1)

您可以使用简单的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中,确保可以使textView可点击:

android:clickable="true"