0

私の知る限り、NumberFormatExceptionを停止するために正しいtry catchステートメントを入力しました...NullPointerExceptionはこれから発生している可能性があります:

TextView tvfin = null;
tvfin.setText(fin+"");
tvfin = (TextView)findViewById(R.id.tvfinalgrade);

これらの3行はOnClickListenerに含まれる予定ですが、まだ作成していません。問題が発生する可能性があるかどうかはわかりません。どんな助けでも大歓迎です!

package wilson.GC;

import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;

public class GFActivity extends Activity {

 @Override
    public void onCreate(Bundle savedInstanceState) {          

        super.onCreate(savedInstanceState);    
        setContentView(R.layout.getfinal);

        double q1, q2, ex, fin;
         EditText etq1, etq2, eteg;
         etq1 = (EditText)findViewById(R.id.editText1);
            try{
                q1 = Double.parseDouble(etq1.getText().toString());
            } catch (NumberFormatException e) {
                q1=0;
            }
         etq2 = (EditText)findViewById(R.id.editText2);
            try{
                q2 = Double.parseDouble(etq2.getText().toString());
            } catch (NumberFormatException e){
                q2 = 0;
            }
         eteg = (EditText)findViewById(R.id.editText3);
         try{
             ex = Double.parseDouble(eteg.getText().toString());
         } catch (NumberFormatException e){
             ex = 0;
         }
        fin = 0.4*q1+0.4*q2+0.2*ex;
            if(fin == (int)fin){
                System.out.println((int)fin);
            }
            else{
                fin = 0.01*((int)(fin*100));
                System.out.println(fin);
            } 
        TextView tvfin = null;
        tvfin.setText(fin+"");
        tvfin = (TextView)findViewById(R.id.tvfinalgrade);

    }
}
4

2 に答える 2

2

テキストを設定する前にtvfinを設定してみてください。

TextView tvfin = (TextView)findViewById(R.id.tvfinalgrade);
tvfin.setText(fin+"");
于 2012-04-01T15:24:29.983 に答える
2

TextView初期化する前にの値を設定しようとしています。これは間違いなくあなたにNullPointerException。これを変える:

TextView tvfin = null;
tvfin.setText(fin+"");
tvfin = (TextView)findViewById(R.id.tvfinalgrade);

に:

TextView tvfin = (TextView)findViewById(R.id.tvfinalgrade);
tvfin.setText(fin+"");
于 2012-04-01T15:25:13.417 に答える