2012-08-03 83 views
2

我试图实现一个函数,当TextView包含太多文本行时,可以在用户点击按钮后折叠成2行。预计当用户再次点击该按钮时,TextView应该显示它包含的全文。 在collapseView()方法,我下面用setEllipsizeAndroid - 展开椭圆化TextView

private void collapseView() { 
     m_vwText.setMaxLines(2); 
     m_vwText.setEllipsize(TruncateAt.END); 
     m_vwExpandButton.setText(EXPAND); 
    } 

所以我不知道我应该在expandView()方法做,以显示包含在TextView所有行。请提前帮助和感谢。

回答

0

一个想法是将原始的TextView值存入一个临时变量并保存在那里,并在customView()方法中使用它。

前:,在onCreate()

String originalText=m_vwText.getText().toString(). 

然后在你的expandView()你只是originalText

private void expandView(){ 
    m_vwText.setText(originalText); 
} 
+0

谢谢你的工作,我已经试过了,但不知它不工作(在'的TextView '仍然显示椭圆形文字。)我会试着找出问题的真相。 – 2012-08-03 12:57:36

+0

最可能的问题是因为TextView保留了collapseView()的ellipsize设置:m_vwText.setEllipsize(TruncateAt.END);.在expandView()中,您将需要以某种方式重置此设置,然后设置原始文本。如果回答您的问题,请将答案标记为已接受。 – 2012-08-03 13:01:17

+0

奇怪的是,当我创建一个'Toast'来尝试显示原始文本时,它显示全文很好,但是我为'm_vwText'调用的'setText'仍然无法显示全文。这真让我感到困惑。 – 2012-08-03 15:16:30