我正在尝试制作一个接受输入的应用并自动将其更改为int。但是,当它尝试获取int时,应用程序会自动停止。以下是完整的代码...
public class MainActivity extends Activity implements OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button calculate = (Button)findViewById(R.id.calculateTip);
calculate.setOnClickListener(this);
}//end onCreate
public void onClick(View v) {
EditText money = (EditText)findViewById(R.id.bill);
int bill = Integer.parseInt(money.getText().toString());
money.setText("Event Processed");
}//end onClick
}//end MainActivity
答案 0 :(得分:1)
我怀疑应用程序正在停止,因为您尝试解析的值实际上不是整数。您应该将该代码放入try catch中。
即:
public void onClick(View v) {
EditText money;
try
{
money = (EditText)findViewById(R.id.bill);
// This check makes sure that the EditText is returning the correct object.
if(money != null)
{
int bill = Integer.parseInt(money.getText().toString());
money.setText("Event Processed");
}
}
catch(NumberFormatException e)
{
// If we get in here that means the inserted value was not an Integer. So do something.
//ie:
money.setText("Please enter a value amount" );
}
}//end onClick
无论如何,您应该在try catch中使用此代码来维护数据完整性。
希望这有帮助! 欢呼声。
答案 1 :(得分:0)
你确定Object是EditText的一个实例并且它不是null吗?