我需要为我的TextView设置提示,如果String太长而无法放入电视中(我将最大长度设置为20),则它仅显示部分内容,并在末尾显示“ ...”。我想在电视上显示带有完整字符串的提示。可能吗?如果是的话该怎么做?
内部活动:
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" />
答案 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"