Ваш подход к
final EditText height = (EditText) findViewById (R.id.height);
String heightString = height.getText().toString();
final int heightInt = Integer.parseInt(heightString);
верен, но вы вызываете это непосредственно в вашем onCreate
методе.Это означает, что их вызывают, как только приложение запускается, даже до того, как пользователь сможет что-либо сделать.из-за этого значения всегда пусты, просто потому, что у пользователя даже не было изменений, чтобы сделать что-либо еще.
Когда вы используете значения позже в вашем onClick
(что правильно), онивсе еще пусто из-за их ранней инициализации.
Попробуйте поместить эту часть:
String heightString = height.getText().toString();
final int heightInt = Integer.parseInt(heightString);
Непосредственно после начала вашего onClick
метода, но перед вашими if/else
утверждениями, такими как:
public void onClick(View v) {
String heightString = height.getText().toString();
final int heightInt = Integer.parseInt(heightString);
// Your statements
}