【发布时间】:2015-12-25 02:42:31
【问题描述】:
我正在尝试开发一个作为计时器的 Android 应用。用户在两个 EditText 中输入分钟和小时数,并使用意图将数据放入秒表。不幸的是,我不断收到 NumberFormatException。
这是我的代码。
Java
@Override
// Gets the view and initializes values for hours and mins
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.fragment_alarm, container, false);
EditText hour = (EditText) v.findViewById(R.id.hours);
EditText min = (EditText) v.findViewById(R.id.mins);
alarm = (Button) v.findViewById(R.id.start);
hours = hour.getText().toString().trim();
Log.d(TAG, "getting and turning into strings");
mins = min.getText().toString().trim();
alarm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checked.configureCheck(getData());
}
});
return v;
}
private Bundle getData(){
Bundle b = new Bundle();
try{
int hour = Integer.parseInt(hours);
int min = Integer.parseInt(mins);
b.putInt("hours", hour);
b.putInt("minutes", min);
} catch(NumberFormatException e){
e.printStackTrace();
}
return b;
}
【问题讨论】:
-
hours和min将始终为空,或者包含您在 xml 中设置的任何默认值。您的“获取并变成字符串”会立即发生 - 而不是在您单击按钮之后。你的 logcat 应该已经告诉你了。您可能想学习一个解释变量概念的基本 Java/编程教程。了解这一点对于您作为程序员的成功至关重要。
标签: android android-edittext int