OnClickListener错误:找不到源

时间:2010-06-01 23:30:00

标签: android

我是Android开发的新手,现在我正在为医护人员构建一个简单的计算器。我的程序实现了OnClickListener类,但每次单击按钮启动计算时,都会收到错误消息“未找到源”。

以下是代码:

public class KidneyeGFR extends Activity implements OnClickListener {
TextView EditAge;
TextView EditSerum;
TextView Gfrtext;
RadioButton Male;
RadioButton Female;
RadioButton EveryoneElse;
RadioButton African;
Button Calculate;
double gender;
double race;
double finalgfr;
private static final int GFRCONST = 186;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    EditAge = (TextView)this.findViewById(R.id.EditAge);
    EditSerum = (TextView)this.findViewById(R.id.EditSerum);

    Male = (RadioButton)this.findViewById(R.id.Male);
    Male.setChecked(true);
    Female = (RadioButton)this.findViewById(R.id.Female);

    EveryoneElse = (RadioButton)this.findViewById(R.id.EveryoneElse);
    EveryoneElse.setChecked(true);
    African = (RadioButton)this.findViewById(R.id.African);

    Calculate = (Button)this.findViewById(R.id.Calculate);
    Calculate.setOnClickListener(this);

}

public void onClick(View v) {
    if (Female.isChecked()) {
        gender = 0.742;
    }
    else {
        gender = 1.0;
    }
    if (African.isChecked()) {
        race = 1.212;
    }
    else {
        race = 1.0;
    }
    calculateGFR();
}


protected void calculateGFR() {
    int age = Integer.parseInt(EditAge.getText().toString());
    double serum = Double.parseDouble(EditSerum.getText().toString());
    finalgfr = GFRCONST * Math.pow(serum, -1.154) * Math.pow(age, -0.203) * gender * race;
    Gfrtext.setText(Double.toString(finalgfr));
}

3 个答案:

答案 0 :(得分:1)

定义TextView Gfrtext ...

  Gfrtext = (TextView)this.findViewById(R.id.Gfrtext);

实际上你得到一个NullPointerException,检查LogCat或Debug视图以获得有关你的app异常的更多具体细节。

这是个大问题! =)

答案 1 :(得分:0)

我认为你错过了Female / African / EditAge / etc的初始化。在onCreate方法中。在这里,您应该使用findViewById方法加载所有这些。调试时可以很容易地检查这一点(尝试在onClick方法的第一行放置一个断点)。

顺便说一句,Java中的约定是对象的成员和方法总是以小写字母开头,对象名称以大写字母开头。

答案 2 :(得分:0)

您的代码没有任何问题!这就是Eclipse Exception 检查一下...... Eclipse debugging “source not found”