我正在尝试在Try/Catch中使用Toast,但当它捕捉到错误的输入时,Toast不会显示。我在代码中找不到错误,请在这里帮我。
这是代码的一个简短部分,其中包括try/catch块:
else{
try{
Integer.parseInt(score_1.getText().toString());
Integer.parseInt(score_2.getText().toString());
ArrayList_matches.get(position_match).score_1 = score_1.getText().toString();
ArrayList_matches.get(position_match).score_2 = score_2.getText().toString();
adapter.notifyDataSetChanged();
} catch(NumberFormatException ex) {
Toast.makeText(Game_activity.this, "Wrong input, numbers only", Toast.LENGTH_LONG).show();
}
}
使用非常简单
Toast.makeText(getApplicationContext(), "Wrong input, numbers only", Toast.LENGTH_LONG).show();
而不是
Toast.makeText(Game_activity.this, "Wrong input, numbers only", Toast.LENGTH_LONG).show();
如果你想调试,那么就使用
Log.d("TAG","YOUR MSG");
为score1设置一些默认整数值。
尝试这种方式
try {
Integer.parseInt(score_1.getText().toString());
Integer.parseInt(score_2.getText().toString());
ArrayList_matches.get(position_match).score_1 = score_1.getText().toString();
ArrayList_matches.get(position_match).score_2 = score_2.getText().toString();
adapter.notifyDataSetChanged();
} catch(NumberFormatException ex) {
runOnUiThread(new Runnable(){
public void run() {
Toast.makeText(Game_activity.this, "Wrong input, numbers only", Toast.LENGTH_LONG).show();
});
}
我强烈建议使用Log
内部捕获。
快乐的编码。
可能不是NumberFormatException。请给出非数字格式的错误输入,