我有一个简单的计算器应用程序。当用户按下计算编辑文本时,他们输入的数字会改变颜色并输出结果。当按下重置时,我希望编辑文本下的行重新出现,但它不会显示我当前编写代码的方式。这是我当前代码的剪辑。
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.calculate:
myFunction.doWork();
voltageInputEditText.setBackgroundColor(Color.DKGRAY);
voltageInputEditText.setTextColor(Color.WHITE);
break;
case R.id.reset:
myFunction.reset();
voltageInputEditText.setText("");
voltageInputEditText.setBackgroundColor(Color.WHITE);
break;
}
}
这是理想的结果
这是当前的结果
这是我运行myFunction后的看法。(doWork);
答案 0 :(得分:0)
你应该保存它。
String savedInputText = "";
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.calculate:
myFunction.doWork();
savedInputText = voltageInputEditText.getText();
voltageInputEditText.setBackgroundColor(Color.DKGRAY);
voltageInputEditText.setTextColor(Color.WHITE);
break;
case R.id.reset:
myFunction.reset();
voltageInputEditText.setText(savedInputText);
voltageInputEditText.setBackgroundColor(Color.WHITE);
break;
}
}
答案 1 :(得分:0)
当您在内部调用setBackgroundColor
时,它正在使用ColorDrawable调用setBackgroundDrawable
,因此您将替换原始背景,即在EditText中显示该行的背景。
开始设置白色背景颜色同样会删除此行。
如果您通过getBackground
保存原始背景,然后通过setBackgroundDrawable
将其恢复,则应该有效。