Как предотвратить повреждение моего приложения, когда поле EditText
пуст?Пустой файл EditText приводит к сбою программы
public class Credits extends Activity {
int inaugural = 1992;
int differenceInYears;
int userGuess;
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int output;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_credits);
final EditText Guess=(EditText)findViewById(R.id.txtYearGuess);
Button go = (Button)findViewById(R.id.btnCalculate);
final TextView result = ((TextView)findViewById(R.id.txtResult));
go.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int userGuess= Integer.parseInt(Guess.getText().toString());
differenceInYears = year - inaugural;
output = userGuess - differenceInYears;
if (output < -1) {
result.setText("Guess again! You guessed too low!");
}
else if (output == 1) {
result.setText("You're REALLY close! You guessed too high!");
}
else if (output == -1) {
result.setText("You're REALLY close! You guessed too low!");
}
else if (output > 1) {
result.setText("Guess again! You guessed too high!");
}
else {
result.setText("Good job! You're an FRC Genious!");
}
}
});
}
}
Это так просто, как другой if
заявление, наблюдая за «пустой» переменной? Если да, то каков будет код для этого? Я немного рад за идеи по предотвращению этого краха. Если есть какой-либо отчет от Eclipse, который мог бы помочь ответить на этот вопрос, пожалуйста, дайте мне знать, где его найти.
Спасибо!
EDIT
Я попытался добавить рекомендованную TextUtils
, но они не решают аварии приложения.
public class Credits extends Activity {
int inaugural = 1992;
int differenceInYears;
int userGuess;
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int output;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_credits);
final EditText Guess=(EditText)findViewById(R.id.txtYearGuess);
Button go = (Button)findViewById(R.id.btnCalculate);
final TextView result = ((TextView)findViewById(R.id.txtResult));
go.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int userGuess= Integer.parseInt(Guess.getText().toString());
differenceInYears = year - inaugural;
output = userGuess - differenceInYears;
if(!TextUtils.isEmpty(Guess.getText().toString())) {
Toast.makeText(Credits.this, "Please input your Guess", Toast.LENGTH_LONG).show();
}
else {
if (output < -1) {
result.setText("Guess again! You guessed too low!");
}
else if (output == 1) {
result.setText("You're REALLY close! You guessed too high!");
}
else if (output == -1) {
result.setText("You're REALLY close! You guessed too low!");
}
else if (output > 1) {
result.setText("Guess again! You guessed too high!");
}
else {
result.setText("Good job! You're an FRC Genious!");
}
}
}
});
}
}
Я добавил это и по какой-то причине приложение по-прежнему падает. Любые идеи почему? – Joseph
, пожалуйста, напишите журналы об авариях. Вы также добавили проверку isDigits? – Manish
Это звучит действительно глупо, но ... Где я могу найти журналы аварий? – Joseph