在String中将String限制为2行,然后剪切它并连接一个String

时间:2013-05-08 22:01:12

标签: android string textview concatenation lines

我的问题可能听起来有点奇怪但我会在这里尝试更好地解释。

我在android中的一个TextView,在我活动的下半部分。我想将它限制为2行,可以通过在TextView xml元素中添加以下行来轻松访问:

android:maxLines="2"

好的,现在我们将它限制在2行。 然后,在我的活动中,我做了:

termsandconditions = (TextView) findViewById(R.id.textView1);
termsandconditions.setText(terms);

好的,现在我有一个包含条款和条件的大字符串,但由于xml属性限制为2行。

现在我的问题是,在限制为2行后如何剪切它,并将字符串与“Read more”连接起来?我不需要它在同一个textView或其他任何东西,我只想它看起来像:

术语:blablablalblalbla blal blablalblalblalblalbla lalblalblalblalblalblalb lalblalblalb lalblalblalblalblalb lalblalblalb lalblalblalblalb lalb bla查看更多。

谢谢,我希望你能理解我的问题。

2 个答案:

答案 0 :(得分:0)

您可以使用setEllipsize (TextUtils.TruncateAt where)的{​​{1}}方法或TextView XML属性。

  

public void setEllipsize(TextUtils.TruncateAt where)在API中添加   1级

     

导致文本中长于视图宽度的单词   椭圆化而不是在中间破碎。你可能也想   setSingleLine()或setHorizo​​ntallyScrolling(boolean)来约束   文字到一行。使用null关闭ellipsizing。如果   setMaxLines(int)已用于设置两行或更多行END和   仅支持MARQUEE *(其他椭圆化类型不支持   任何东西)。

     

相关的XML属性

android:ellipsize

答案 1 :(得分:0)

可能有点hacky,但这是我的建议:

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

    <TextView
            android:id="your_text_view"
            android:text="long long long text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />

    <TextView
            android:id="link"
            android:text="View More"
            android:onClick="addMoreLinesAndHideThisTextView"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

</RelativeLayout>

可能需要进行一些额外的调整,但我认为你有了这个想法。