我在一个活动(不是片段)中有一个 TextView 对象,我使用SetText()
填充了一些文本。在某些时候,我将 TextView 对象的可见性更改为View.GONE。一段时间后,当 TextView 对象的可见性设置为View.VISIBLE时,动态文本集不会显示在 TextView 中。我试图了解使用Log发生了什么,并发现 TextView 对象的内容是空字符串。因此我的问题是,当 TextView 对象中的文本可见性设置为View.GONE时会发生什么?
简介:
使用setText()
- >填充 textview 中的文字将公开范围更改为View.GONE
- >将公开范围更改为View.VISIBLE
- > getText()
返回空字符串
问题:为什么?
答案 0 :(得分:2)
setVisibility()
是View
类的一种方法,文档说明当可见性设置为View.GONE
时:
此视图不可见,并且不占用任何布局空间 目的。
因此,此处的View
实例(TextView
对象)非常活跃并且没有理由显示其私有字段(mText
以及TextView
)被摧毁它对布局管理器来说是不可见的。在您的情况下,上述行为的罪魁祸首之一是TextView
对象的可能重新初始化(例如通过调用onCreateView()
)。
答案 1 :(得分:1)
Textview不可见,并且不需要任何空间用于布局。 因此没有数据丢失,它只是看不见,没有空间获取用于布局目的。所以它必须是你的代码中的一些其他setText()操作,或者你可能是重新创建TextView对象。