大家好,我是新来的,所以这是我的第一篇文章
我想构建我的第一个Android应用程序,这将是一个精确的GPA计算器,但每次我按下计算按钮应用程序崩溃我使用Android工作室,这里是Java代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.mac.gpacalculator.MainActivity"
tools:showIn="@layout/activity_main">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/num4"
android:layout_below="@+id/num3"
android:layout_alignStart="@+id/num3"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-"
android:textAlignment="center"
android:hint="Grade"
android:inputType="text" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/num5"
android:layout_below="@+id/num4"
android:layout_alignStart="@+id/num4"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-"
android:textAlignment="center"
android:hint="Grade"
android:inputType="text" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/num2"
android:layout_below="@+id/num1"
android:layout_alignStart="@+id/num1"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-"
android:textAlignment="center"
android:hint="Grade"
android:inputType="text" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/num3"
android:inputType="text"
android:textAlignment="center"
android:hint="Grade"
android:layout_below="@+id/num2"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-"
android:layout_alignStart="@+id/num2" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:id="@+id/num1"
android:hint="Grade"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-"
android:textAlignment="center"
android:layout_marginTop="49dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:inputType="text" />
<Button
android:text="CALCULATE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/calc"
android:layout_marginTop="24dp"
android:layout_below="@+id/num5"
android:layout_centerHorizontal="true"
android:onClick="calculation"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:id="@+id/total"
android:hint="0"
android:layout_below="@+id/calc"
android:layout_centerHorizontal="true"
android:textSize="50sp" />
</RelativeLayout>
这是XML
FATAL EXCEPTION: main
Process: com.example.mac.gpacalculator, PID: 2327
java.lang.NumberFormatException: empty String
at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1071)
at java.lang.Float.parseFloat(Float.java:459)
at com.example.mac.gpacalculator.MainActivity$2.onClick(MainActivity.java:51)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Application terminated.
另外,我在哪里可以了解更多有关Android开发的内容,您可以向我推荐一些资源,如书籍,网站等,我非常感激。 提前致谢。
哦抱歉,我没有包含错误消息
.save()
答案 0 :(得分:0)
你必须Button btn = (Button) findViewById(R.id.button);
,否则你会抛出NullPointerException
。检查android监视器,看看是否与那里的错误匹配。
答案 1 :(得分:0)
您已在XML android:onClick="calculation"
标记中添加了<Button>
,因此请定义一个名为calculate的方法,该方法接受代码中的视图。
或在代码中使用calcbtn.setOnClickListener ...并从按钮标记中删除android:onClick="calculation"
不要同时使用android:onClick="calculation
和view.setOnClick
..来查看相同的视图。
您的XML中没有名为fab
的ID,因此请添加FloatingActionButton
并将该ID提供给它或发表评论FloatingActionButton fab ....});
答案 2 :(得分:0)
我在这里看到多个错误:
正如@charuka所回答的那样,您在按钮android:onClick="calculation
中添加了一个方法,该方法无法被Android找到并导致崩溃。
您正尝试将EditText
解析为String
,而不是String
,此处为:convert(String.valueOf(grade1));
,将其更改为convert(grade1.getText().toString());