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 にスローする必要があります。

すなわち:

    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 のインスタンスであり、null でないことは確かですか?

于 2012-10-01T23:55:38.763 に答える