Java 我的Android复利计算器不断崩溃

Java 我的Android复利计算器不断崩溃,java,android,crash,Java,Android,Crash,正常进口 package dum.de.dum; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.os.Bundle; 我听说人们在解析数字时遇到了麻烦,所以我不确定这是否是个问题,如果是,我也不

正常进口

package dum.de.dum;

import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.os.Bundle;
我听说人们在解析数字时遇到了麻烦,所以我不确定这是否是个问题,如果是,我也不知道如何解决

public class CalcActivity extends Activity {


    Button finish;
    double total;
    double interest2;
    double time2;
    double base2;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {




        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        finish = (Button) findViewById(R.id.total);
        finish.setOnClickListener(new OnClickListener(){
            public void onClick(View V) {

                EditText base;
                base = (EditText) findViewById(R.id.base);
                String baseValue = base.getText().toString();
                double BaseNum = Double.parseDouble(baseValue);

                EditText interest;
                interest = (EditText) findViewById(R.id.interest);
                String interestValue = interest.getText().toString();
                double interestNum = Double.parseDouble(interestValue);

                EditText time;
                time = (EditText) findViewById(R.id.time);
                String timeValue = time.getText().toString();
                double timeNum = Double.parseDouble(timeValue);

                double total = BaseNum * Math.pow(interestNum + 1, timeNum);        
每次我尝试在模拟器中运行它时,我都会立即得到一个强制关闭。我是一名新的ish程序员,在eclipse中没有任何错误代码。

尝试替换

        EditText Output;
        Output = (EditText) findViewById(R.id.total);
        Output.setText("Your total is: " + total);

        };

    });
}
}
与:

试着替换

        EditText Output;
        Output = (EditText) findViewById(R.id.total);
        Output.setText("Your total is: " + total);

        };

    });
}
}
与:

您的
finish
按钮的id不是
R.id.total
-根据此项,这是一个
EditText

finish = (Button) findViewById(R.id.total);
当您尝试使用该id查找按钮时,将得到一个
ClassCastException

您的
finish
按钮的id不是
R.id.total
-根据此项,这是一个
EditText

finish = (Button) findViewById(R.id.total);

当您尝试使用该id查找按钮时,将得到一个
ClassCastException

您可以通过打开eclipse中的view by menu->window->showView->logcat查看错误

根据您的描述,一旦启动活动,应用程序就会崩溃,问题可能是:

Output = (EditText) findViewById(R.id.total);

check-once-in-main.xml按钮id为->android:id/total

您可以通过菜单->窗口->showView->logcat打开eclipse中的视图来查看错误

根据您的描述,一旦启动活动,应用程序就会崩溃,问题可能是:

Output = (EditText) findViewById(R.id.total);

check once-in-main.xml按钮id为->android:id/total

您还应该向我们显示xml布局文件,因为您首先将finish作为按钮,然后分配按钮编辑文本。
R.id.total
是xml文件中的按钮或编辑文本(如果是按钮),则必须在其内部使用编辑文本框id

finish = (Button) findViewById(R.id.total);
        finish.setOnClickListener(new OnClickListener(){

然后,该值将显示在编辑文本框中。

您还必须向我们显示Xml布局文件,因为您首先将finish作为按钮,然后分配按钮编辑文本。
R.id.total
是xml文件中的按钮或编辑文本(如果是按钮),则必须在其内部使用编辑文本框id

finish = (Button) findViewById(R.id.total);
        finish.setOnClickListener(new OnClickListener(){

然后,该值将显示在编辑文本框中。

这两个值相同是什么意思?它们之间有明显的区别,是空异常还是什么?它在错误中说了什么?通常,前几个红色日志会告诉您02-11 06:55:16.852:E/AndroidRuntime(292):未捕获处理程序:线程主线程由于未捕获异常而退出02-11 06:55:16.862:E/AndroidRuntime(292):java.lang.RuntimeException:无法启动活动组件信息{dum.de.dum/dum.de.dum.CalActivity}:java.lang.ClassCastException:android.widget.EditText 02-11 06:55:16.862:E/AndroidRuntime(292):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)@Jake看到我的答案了吗?我已经解释过这将是一个
ClassCastException
@SmartLemon:您建议替换的第一行在将数字数据类型的值连接到字符串的上下文中可以正常工作。在这种情况下,它将作为连接过程的一部分进行隐式转换。您认为两者相同是什么意思?它们之间有明显的区别,是空异常还是什么?它在错误中说了什么?通常,前几个红色日志会告诉您02-11 06:55:16.852:E/AndroidRuntime(292):未捕获处理程序:线程主线程由于未捕获异常而退出02-11 06:55:16.862:E/AndroidRuntime(292):java.lang.RuntimeException:无法启动活动组件信息{dum.de.dum/dum.de.dum.CalActivity}:java.lang.ClassCastException:android.widget.EditText 02-11 06:55:16.862:E/AndroidRuntime(292):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)@Jake看到我的答案了吗?我已经解释过这将是一个
ClassCastException
@SmartLemon:您建议替换的第一行在将数字数据类型的值连接到字符串的上下文中可以正常工作。在本例中,它将作为连接过程的一部分进行隐式转换。哇,我完全没有注意到这一点。@SmartLemon:我花了一段时间才注意到:因为代码的那一部分都被揉成一团,所以很难注意到。D:哇,我完全没有注意到。@SmartLemon:我花了一点时间才注意到因为代码的那一部分都被揉成一团,所以很难注意到。D: