当我尝试获取Int时我的应用程序停止

时间:2012-10-01 23:51:24

标签: java android parsing int

我正在尝试制作一个接受输入的应用并自动将其更改为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

2 个答案:

答案 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吗?