我已经在我的计算器应用程序中创建了以下函数,用于更新TextView(通过在此textview中获取旧文本和新字符串,然后将其连接并放置在textview中)。
public class MainActivity extends AppCompatActivity {
TextView displayTv;
EditText inputEt;
Button clearButton, numberButton, equalButton;
double answer=0,operand;
String operation;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
displayTv = findViewById(R.id.input_tv);
displayTv.setText("");
inputEt = findViewById(R.id.input_et);
clearButton = findViewById(R.id.clear_bt);
reset();
}
void updateTv(String s){
String text = displayTv.getText().toString();
Log.d("test",text);
displayTv.setText(text+s);
}
}
现在的问题是,即使textview之前有任何字符串,使用此函数也会将texttring中的旧字符串替换为new String" s"有意更新。 基本上是String" text"为空,因此不打印日志。 请帮帮我。
答案 0 :(得分:0)
使用append()代替setText(),如下所示 -
void updateTv(String s){
String text = displayTv.getText().toString();
Log.d("test",text);
displayTv.append(" " + s);
}
并根据需要调用updateTv()方法。
答案 1 :(得分:0)
试试这段代码..
void updateTv(String s){
StringBuffer stringBuffer=new StringBuffer();
stringBuffer.append(displayTv.getText().toString() +" "+ s);
displayTv.setText(stringBuffer);
}
如果要清除最后一个字符串,则使用set
displayTv.setText("");