不幸的是,<project name =“”>已停止工作。</project>

时间:2013-01-17 01:26:19

标签: java android

我是一个真正的NOOB和新的编码员。我开始学习Java,最近在eclipse上创建了这个应用程序。它是一美元到欧元的转换器。每当我尝试在eclipse上运行代码时,我都会收到错误消息,说应用程序已经停止工作。

TextView dollars;
TextView euros;
RadioButton dtoe;
RadioButton etod;
Button calculate;



public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dollars = (TextView)this.findViewById(R.id.dollars);
    euros = (TextView)this.findViewById(R.id.euros);

    dtoe = (RadioButton)this.findViewById(R.id.dtoe);
    etod = (RadioButton)this.findViewById(R.id.euros);

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

}

public void onClick(View v) {

    if (dtoe.isChecked()){
        convertDollarsToEuros();
    }
    if (etod.isChecked()){
        convertEurosToDollars();
    }
}

protected void convertDollarsToEuros(){

    double val = Double.parseDouble(dollars.getText().toString());
    euros.setText(Double.toString(val*0.67));
}

protected void convertEurosToDollars(){
    double val = Double.parseDouble(euros.getText().toString());
    dollars.setText(Double.toString(val*0.67));
}

}

3 个答案:

答案 0 :(得分:1)

没有logcat它只是一个有根据的猜测,但看看这一行:

etod = (RadioButton)this.findViewById(R.id.euros);

你确定你使用的是正确的身份证吗?它与您用于上面TextView的那个相同。您可能会抛出ClassCastException,因为您尝试将其用作RadioButton

无关,但您的转换逻辑似乎也是错误的。您不能指望转化的两个都是(val * 0.67)

答案 1 :(得分:0)

没有logcat就很难猜到。但我认为有一个NPE被抛出。很可能是来自

dollars.getText().toString()

euros.getText().toString()

我建议您在应用.toString()之前包含空检查。

答案 2 :(得分:0)

我建议去Window&gt;显示视图&gt;控制台,根据错误,它有时会为您提供指向导致问题的类中的行的链接。