我有一个文本视图,它本身是线性布局的一部分。XML是:
<TextView
android:id="@+id/label_text"
android:layout_width="fill_parent"
android:layout_height="77dp"
android:layout_marginTop="3dp"/>
Run Code Online (Sandbox Code Playgroud)
在主程序中,我首先将文本视图设置为一个值:
private TextView character_speaking;
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
character_speaking = (TextView) findViewById(R.id.label_text);
character_speaking.setText("a text string that was large enough for two lines");
}
Run Code Online (Sandbox Code Playgroud)
这很好用。
然后我执行另一个 setText 以响应按钮按下:
public void handleNextButtonClick(View view) {
character_speaking.setText("first one line message");
}
Run Code Online (Sandbox Code Playgroud)
这也有效
但是后来我又做了一个 setText 来响应另一个按钮的按下:
public void handlePrevButtonClick(View view) {
character_speaking.setText("second one line message");
}
Run Code Online (Sandbox Code Playgroud)
和灾难来袭。第二行消息覆盖第一行消息而不清除它。
在编写第二行消息之前,是否有清除第一行消息的方法?
我已经尝试通过使用 EditText 而不是 TextEdit 来解决这个问题,但这是不可接受的,因为它允许用户在现场书写。