在 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”改变。
如果您还有其他问题,请告诉我。
我有两个 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”改变。
如果您还有其他问题,请告诉我。