我有3个EditText,用户必须从中输入任何1值,其他两个值将自动设置为null。如果用户输入2个值,则第3个值应自动设置为null。我正在使用以下方法,有人在打印所有值时可以帮助我解决我做错的事情。
public class Land_details extends AppCompatActivity {
String edit1,edit2,edit3;
String new_edit1,new_edit2,new_edit3;
Edittext land_edit1,land_edit2,land_edit3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
land_edit1= findViewById(R.id.land_edit1);
land_edit2= findViewById(R.id.land_edit2);
land_edit3= findViewById(R.id.land_edit3);
edit_button= findViewById(R.id.edit_button);
edit_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Check_all_data();
}
});
}
@Override
protected void onResume() {
super.onResume();
}
public TranslateAnimation shakeError() {
TranslateAnimation shake = new TranslateAnimation(20, -20, 0, 0);
shake.setDuration(150);
shake.setInterpolator(new CycleInterpolator(4));
return shake;
}
private boolean validate_edit1() {
edit1= land_edit1.getText().toString().trim();
if (edit1.isEmpty()) {
land_edit1.startAnimation(shakeError());
land_edit1.requestFocusFromTouch();
land_edit1.setError("Enter detail ");
return false;
} else {
land_edit1.setFocusable(false);
}
return true;
}
private boolean validate_edit2() {
edit2= land_marla_edit.getText().toString().trim();
if (edit2.isEmpty()) {
land_edit2.startAnimation(shakeError());
land_edit2.requestFocusFromTouch();
land_edit2.setError("Enter Detail");
return false;
} else {
land_edit2.setFocusable(false);
}
return true;
}
private boolean validate_edit3() {
edit3= land_edit3.getText().toString().trim();
if (edit3.isEmpty()) {
land_edit3.startAnimation(shakeError());
land_edit3.requestFocusFromTouch();
land_edit3.setError("Enter Acre ");
return false;
} else {
land_edit3.setFocusable(false);
}
return true;
}
private void Check_all_data() {
if (validate_edit1() || validate_edit2() || validate_edit3()) {
if ( edit1 != null || edit2 != null || edit3 !=null) {
new_edit1= land_edit1.getText().toString();
new_edit2= land_edit2.getText().toString();
new_edit3= land_edit3.getText().toString();
Log.i("edit11", String.valueOf(new_edit1));
Log.i("edit21", String.valueOf(new_edit2));
Log.i("edit31", String.valueOf(new_edit3));
}
Intent inms = new Intent(Land_details.this, Register2Activity.class);
startActivity(inms);
overridePendingTransition(R.anim.from_right, R.anim.slide_to_left);
finish(); Toast.makeText(this, "Waitng to upload", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "ERRRORR", Toast.LENGTH_LONG).show();
}
}
如果我在EditTexts 1和2中输入值,则打印日志已更新
2020-05-20 10:55:09.968 30567-30567/com.example.agridept I/edit11: 54
2020-05-20 10:55:09.968 30567-30567/com.example.agridept I/edit21: 80
为什么在Log中不将第三个值设为null?
您无法使用日志显示null
。例如;
Log.d("Hey I'm null",null);
不会显示任何内容,因为您无法打印null
。首先,您应该了解null的一件事不是空白或空白对象。
如果要检查是否为null
,请使用类似这样的条件,
if(edtText.getText().toString()==null)
Log.d("Hey this edittext is null","No value");