2010-06-01 2 views
0

Я совершенно новый для разработки Android, и сейчас я строю простой калькулятор для медицинских работников. Моя программа реализует класс OnClickListener, но каждый раз, когда я нажимаю кнопку, чтобы начать вычисление, я получаю сообщение об ошибке «Источник не найден».Ошибка 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)); 
} 

ответ

1

определяют TextView Gfrtext ...

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

На самом деле вы получаете NullPointerException, проверьте LogCat или вид отладки, чтобы иметь более точные сведения о исключения приложений.

Thats большая проблема !!! =)

+0

Спасибо, приятель. К сожалению, теперь я получаю эту ошибку на уровне иерархии проекта. Неизвестная ошибка: javax.xml.xpath.XPathExpressionException – Sachin

+0

Опубликуйте свой код. – Jorgesys

+0

Для манифеста или макета? – Sachin

0

Я думаю, что вам не хватает инициализацию Женский/Африканском/EditAge/и др. в методе onCreate. Здесь вы должны загрузить все это с помощью метода findViewById. Это можно легко проверить при отладке (попробуйте поставить точку останова в первой строке метода onClick).

Кстати, соглашение на Java состоит в том, что члены и методы объекта всегда начинаются с нижнего регистра, а имена объектов начинаются с верхнего регистра.

+1

Извините, это неиспользованный исходный код. – Sachin

+0

Хорошо, так что это не проблема. Но вы пробовали отладку? – Marc

+0

Что вы получили в logCat ??? – Jorgesys

0

У вашего кода нет никаких проблем! вот Затмение Exception проверка это ... Eclipse debugging “source not found”

+0

Спасибо, но я посмотрел на этот вопрос, и он, похоже, не затрагивает ту же проблему. Или, может быть, так оно и есть, но я не мог использовать его в качестве решения для моей ситуации. Я установил связку точек останова, и кажется, что ошибка возникает сразу после того, как пробег метода calculateFFF. – Sachin

+0

Похоже, что из других сообщений мне нужно скачать исходный код Android .... – Sachin

Смежные вопросы