0

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

2 回答 2

1

我怀疑应用程序正在停止,因为您尝试解析的值并不是真正的整数。您应该将该代码放入 try catch 中。

IE:

    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 中使用此代码以保持数据完整性。

希望这会有所帮助!干杯。

于 2012-10-02T00:26:47.590 回答
0

您确定 Object 是 EditText 的一个实例并且它不为空吗?

于 2012-10-01T23:55:38.763 回答