-4

私はこのコードを持っています:

    final EditText kcalh=(EditText) findViewById(R.id.kcalh_inserisci);
    final EditText kw=(EditText) findViewById(R.id.kw_inserisci);
    kcalh.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {}
        public void afterTextChanged(Editable arg0) {
            int risultato=Integer.parseInt(kcalh.getText().toString())/860;
            kw.setText(""+risultato);
        }
        public void beforeTextChanged(CharSequence arg0, int arg1,int arg2, int arg3) {}
     });
    kw.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {}
        public void afterTextChanged(Editable arg0) {
            int risultato=Integer.parseInt(kw.getText().toString())*860;
            kcalh.setText(""+risultato);
            System.out.println(risultato);
        }
        public void beforeTextChanged(CharSequence arg0, int arg1,int arg2, int arg3) {}
     });

最初の edittext を変更すると、すべて正常に動作します (2 番目の edittext はその値を変更します... 2番目でもありませんか?

4

1 に答える 1

0

文字列を整数に解析する前に、EditText が空であることを確認します。

kw.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {}
        public void afterTextChanged(Editable arg0) {
            if(kw.getText().toString().length() > 0){
              int risultato=Integer.parseInt(kw.getText().toString())*860;
               kcalh.setText(""+risultato);
               System.out.println(""+risultato);
           }
        }
        public void beforeTextChanged(CharSequence arg0, int arg1,int arg2, int arg3) {}
     });
于 2012-12-04T13:52:10.683 に答える