我是一名新程序员,我只了解Java/Android编程的基础知识。我正在尝试制作一个基本应用程序将华氏温度转换为摄氏度。我编写了执行此操作的方法,将其连接到一个按钮,然后我的应用程序崩溃了。我似乎找不到错误和/或替代方法。我想知道是否有人知道导致坠机的原因以及他们是否可以告诉我将来如何避免它。这将使我以及初学者 Java 程序员受益。
这是我的 Java 代码:
public void appControl (View view){
EditText giveFarenheit = (EditText) findViewById(R.id.farenheit_int);
String oldFarenheitString = giveFarenheit.getText().toString();
int oldFarenheit=Integer.parseInt(oldFarenheitString);
int step1 = oldFarenheit - 32;
int newCelcius = step1*5/9;
EditText giveCelcius = (EditText) findViewById(R.id.celcius_int);
giveCelcius.setHint(oldFarenheit);
}
这是崩溃的日志:
08-28 22:07:55.384 14825-14825/com.paulrotman.tempconverterfree E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.paulrotman.tempconverterfree, PID: 14825
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:4247)
at android.view.View.performClick(View.java:5191)
at android.view.View$PerformClick.run(View.java:20916)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5972)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at android.view.View$1.onClick(View.java:4242)
位于 android.view.View.performClick(View.java:5191)
最佳答案
我猜你的这一行导致了错误:
giveCelcius.setHint(oldFarenheit);
这只是因为您给出整数作为参数而不是 CharacterSequence[]
(我猜);因此,只需添加 +""
使其成为字符串,您的代码就应该可以工作。
...
giveCelcius.setHint(oldFarenheit+"");
关于java - 简单的 Android 方法崩溃..为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32282077/