java - 简单的 Android 方法崩溃..为什么?

标签 java android

我是一名新程序员,我只了解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/

相关文章:

java - Java中数组指针的转换

java - Jersey @FormDataParam 读取多个 InputStream 文件

java - 在控制台的 Windows 上用 Java 打印回车符

java - 使用 CouchBase-Lite 移动设备进行单元测试,无需 Android 应用程序上下文

android - 如何在 Lollipop 之前的设备中使用 background、backgroundTint 和 backgroundTintMode

java - 解析 Excel 工作表时退出 for 循环的中断条件应该是什么?

android - Vitamio在Android App中的集成

java - 通过 HTTPS 网络加密/解密

android - 如何在android中使用fragment显示回收器 View

Java字符串替换 "with\"