如何将“编辑文本”设置回原始状态

时间:2014-02-23 22:35:21

标签: java android

我有一个简单的计算器应用程序。当用户按下计算编辑文本时,他们输入的数字会改变颜色并输出结果。当按下重置时,我希望编辑文本下的行重新出现,但它不会显示我当前编写代码的方式。这是我当前代码的剪辑。

    @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;
        }
}

这是理想的结果

Desired Look

这是当前的结果

Current Result View

这是我运行myFunction后的看法。(doWork);

Post Function Look

2 个答案:

答案 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将其恢复,则应该有效。