在 Android Studio 中未输入任何内容后反向编辑文本框启动

reverse editText box to start after no input has made in Android Studio

我有两个 editText 盒子。在 editText 框中,默认情况下我有 0.0 并且在提示后面我有一个 OnFocusChangeListener.

每次我点击 editText 框输入值时,0.0 消失,提示可见,框等待输入,这没问题。

但是如果我改变主意并切换到第二个 editText 框(没有输入到 editText 框 1),那么框 1 中只有提示可见,但我希望值 0.0 返回,如果有的话没有输入。

final EditText text_box2;
text_box2 = (EditText) findViewById(R.id.fillingPressure);
text_box2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            if (text_box2.getText().toString().compareTo("0.0") == 0) {
                text_box2.setText("");
            }
        }
    }
});

final EditText text_box1;
text_box1 = (EditText) findViewById(R.id.tankVolume);
text_box1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            if (text_box1.getText().toString().compareTo("0.0") == 0) {
                text_box1.setText("");
            }
        }
    }
});
//

您的代码:

    final EditText text_box2;
    text_box2 = (EditText) findViewById(R.id.fillingPressure);
    text_box2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            if (text_box2.getText().toString().compareTo("0.0") == 0) {
                text_box2.setText("");
            }
        }
    }
});

final EditText text_box1;
text_box1 = (EditText) findViewById(R.id.tankVolume);
text_box1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            if (text_box1.getText().toString().compareTo("0.0") == 0) {
                text_box1.setText("");
            }
        }
    }
});

试试这个:

        text_box2 = (EditText) findViewById(R.id.fillingPressure);
        input2 = String.valueOf(text_box2.getText());
        text_box2.setOnFocusChangeListener(new View.OnFocusChangeListener() {

            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if ((hasFocus)&&(input2.equals("0.0") || input2.equals(""))) {
                        text_box2.setText("");
                }
                input2 = (String.valueOf(text_box2.getText()));
                if ((!hasFocus) && (input2.equals(""))){
                    text_box2.setText("0.0");
                }
            }
        });

        text_box1 = (EditText) findViewById(R.id.tankVolume);
        input1 = String.valueOf(text_box1.getText());
        text_box1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if ((hasFocus)&&(input1.equals("0.0") || input1.equals(""))) {
                    text_box1.setText("");
                }
                input1 = (String.valueOf(text_box1.getText()));
                if ((!hasFocus) && (input1.equals(""))){
                    text_box1.setText("0.0");
                }

            }
        });

现在您需要像这样在 onCreate 方法之外声明您的变量:

public class YourClass extends Activity {
    String input1, input2;
    EditText text_box1, text_box2;
    // onCreate method here

最后,确保您的两个 EditText 值都在 .xml 中设置为“0.0”

您想在 onCreate() 方法之外声明变量的原因是为了避免使它们成为最终变量。如果变量是最终的,则值永远不会从“0.0”改变。

如果您还有其他问题,请告诉我。