是什么原因导致我的应用每次按下按钮时崩溃?

时间:2019-02-16 03:49:07

标签: java android textview settext

输入每个课程的学时和成绩然后按“计算GPA”按钮后,我的应用程序崩溃了。

我尝试调试,发现所有逻辑都工作良好,直到为textview设置文本为止。然后它崩溃了,并且在按钮下方不显示GPA。

package com.example.gpa_tejadaa4_calculator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private EditText ch1,ch2,ch3,ch4,ch5;
    private EditText g1,g2,g3,g4,g5;
    private Button gpa_calc;
    private TextView result;
    //private int credit_sum = 0;
    //private int grade_sum = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Credit Hours
        ch1 = (EditText)findViewById(R.id.C_H1);
        ch2 = (EditText)findViewById(R.id.C_H2);
        ch3 = (EditText)findViewById(R.id.C_H3);
        ch4 = (EditText)findViewById(R.id.C_H4);
        ch5 = (EditText)findViewById(R.id.C_H5);

        //Grades
        g1= (EditText)findViewById(R.id.L_G1);
        g2= (EditText)findViewById(R.id.L_G2);
        g3= (EditText)findViewById(R.id.L_G3);
        g4= (EditText)findViewById(R.id.L_G4);
        g5= (EditText)findViewById(R.id.L_G5);

        //Button
        gpa_calc = (Button) findViewById(R.id.button);
        //Result
        result = (TextView)findViewById(R.id.result);

        gpa_calc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                calculateGPA();
            }
        });
    }

    public void calculateGPA() {

        double quality_points = 0;
        double credit_sum = 0;
        double gpa=0;
        double chour1 = Double.valueOf(ch1.getText().toString());
        double chour2 = Double.valueOf(ch2.getText().toString());
        double chour3 = Double.valueOf(ch3.getText().toString());
        double chour4 = Double.valueOf(ch4.getText().toString());
        double chour5 = Double.valueOf(ch5.getText().toString());

        String l1 = String.valueOf(g1.getText());
        String l2 = String.valueOf(g2.getText());
        String l3 = String.valueOf(g3.getText());
        String l4 = String.valueOf(g4.getText());
        String l5 = String.valueOf(g5.getText());

        double[] creditArray = new double[]{chour1, chour2, chour3, chour4, chour5};
        String[] gradeArray = new String[]{l1,l2,l3,l4,l5};
        credit_sum = chour1+chour2+chour3+chour4+chour5;

        for(int i=0; i<gradeArray.length; i++){

            if (gradeArray[i].equals("A")){

                quality_points += (creditArray[i] * 4);

            }
            else if (gradeArray[i].equals("B")){

                quality_points += (creditArray[i] * 3);
            }
            else if (gradeArray[i].equals("C")){

                quality_points += (creditArray[i] * 2);
            }
            else if (gradeArray[i].equals("D")){

                quality_points += (creditArray[i] * 1);
            }
            else if (gradeArray[i].equals("F")){

                quality_points += (creditArray[i] * 0);
            }

        }

        gpa = (quality_points/credit_sum);
        String str = Double.toString(gpa);
        result.setText(str);
    }}
2019-02-15 22:14:57.347 14693-14693/? I/daa4_calculato: Not late-enabling -Xcheck:jni (already on)
2019-02-15 22:14:57.527 14693-14693/? W/daa4_calculato: Unexpected CPU variant for X86 using defaults: x86
2019-02-15 22:14:58.474 14693-14693/com.example.gpa_tejadaa4_calculator W/daa4_calculato: JIT profile information will not be recorded: profile file does not exits.
2019-02-15 22:14:58.483 14693-14693/com.example.gpa_tejadaa4_calculator I/chatty: uid=10086(com.example.gpa_tejadaa4_calculator) identical 10 lines
2019-02-15 22:14:58.483 14693-14693/com.example.gpa_tejadaa4_calculator W/daa4_calculato: JIT profile information will not be recorded: profile file does not exits.
2019-02-15 22:14:58.575 14693-14693/com.example.gpa_tejadaa4_calculator I/InstantRun: starting instant run server: is main process
2019-02-15 22:14:59.642 14693-14706/com.example.gpa_tejadaa4_calculator I/daa4_calculato: Background concurrent copying GC freed 6297(2MB) AllocSpace objects, 0(0B) LOS objects, 54% free, 1297KB/2MB, paused 14.095ms total 327.337ms
2019-02-15 22:14:59.794 14693-14693/com.example.gpa_tejadaa4_calculator W/daa4_calculato: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2019-02-15 22:14:59.813 14693-14693/com.example.gpa_tejadaa4_calculator W/daa4_calculato: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2019-02-15 22:15:00.449 14693-14693/com.example.gpa_tejadaa4_calculator W/daa4_calculato: JNI critical lock held for 17.117ms on Thread[1,tid=14693,Runnable,Thread*=0xe82dc000,peer=0x74473f50,"main"]
2019-02-15 22:15:00.807 14693-14693/com.example.gpa_tejadaa4_calculator D/OpenGLRenderer: Skia GL Pipeline
2019-02-15 22:15:01.401 14693-14718/com.example.gpa_tejadaa4_calculator I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2019-02-15 22:15:01.402 14693-14718/com.example.gpa_tejadaa4_calculator I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
2019-02-15 22:15:01.402 14693-14718/com.example.gpa_tejadaa4_calculator I/OpenGLRenderer: Initialized EGL, version 1.4
2019-02-15 22:15:01.402 14693-14718/com.example.gpa_tejadaa4_calculator D/OpenGLRenderer: Swap behavior 1
2019-02-15 22:15:01.439 14693-14718/com.example.gpa_tejadaa4_calculator D/EGL_emulation: eglCreateContext: 0xe23582a0: maj 3 min 0 rcv 3
2019-02-15 22:15:01.469 14693-14718/com.example.gpa_tejadaa4_calculator D/EGL_emulation: eglMakeCurrent: 0xe23582a0: ver 3 0 (tinfo 0xe2303730)
2019-02-16 00:26:44.489 14693-14693/com.example.gpa_tejadaa4_calculator I/Choreographer: Skipped 54 frames!  The application may be doing too much work on its main thread.
2019-02-16 00:26:44.579 14693-14718/com.example.gpa_tejadaa4_calculator D/EGL_emulation: eglMakeCurrent: 0xe23582a0: ver 3 0 (tinfo 0xe2303730)
2019-02-16 00:26:45.337 14693-14718/com.example.gpa_tejadaa4_calculator I/OpenGLRenderer: Davey! duration=1747ms; Flags=0, IntendedVsync=45140893368546, Vsync=45141793368510, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=45141795801750, AnimationStart=45141796075440, PerformTraversalsStart=45141800459550, DrawStart=45141816295150, SyncQueued=45141885063390, SyncStart=45141887514590, IssueDrawCommandsStart=45141887629200, SwapBuffers=45142416409300, FrameCompleted=45142643449160, DequeueBufferDuration=739000, QueueBufferDuration=2893000, 
2019-02-16 00:26:45.376 14693-14693/com.example.gpa_tejadaa4_calculator I/Choreographer: Skipped 50 frames!  The application may be doing too much work on its main thread.
2019-02-16 00:26:45.506 14693-14718/com.example.gpa_tejadaa4_calculator I/OpenGLRenderer: Davey! duration=970ms; Flags=0, IntendedVsync=45141841971519, Vsync=45142675304819, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=45142683525380, AnimationStart=45142683649680, PerformTraversalsStart=45142684303680, DrawStart=45142686442990, SyncQueued=45142697271280, SyncStart=45142697377900, IssueDrawCommandsStart=45142697527290, SwapBuffers=45142698807910, FrameCompleted=45142812805650, DequeueBufferDuration=88000, QueueBufferDuration=1463000, 
2019-02-16 00:27:17.077 14693-14693/com.example.gpa_tejadaa4_calculator W/daa4_calculato: JNI critical lock held for 22.109ms on Thread[1,tid=14693,Runnable,Thread*=0xe82dc000,peer=0x74473f50,"main"]
2019-02-16 00:27:17.116 14693-14693/com.example.gpa_tejadaa4_calculator W/daa4_calculato: JNI critical lock held for 24.765ms on Thread[1,tid=14693,Runnable,Thread*=0xe82dc000,peer=0x74473f50,"main"]
2019-02-16 00:27:36.598 14693-14693/com.example.gpa_tejadaa4_calculator D/AndroidRuntime: Shutting down VM
2019-02-16 00:27:36.601 14693-14693/com.example.gpa_tejadaa4_calculator E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.gpa_tejadaa4_calculator, PID: 14693
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at com.example.gpa_tejadaa4_calculator.MainActivity.calculateGPA(MainActivity.java:101)
        at com.example.gpa_tejadaa4_calculator.MainActivity$1.onClick(MainActivity.java:47)
        at android.view.View.performClick(View.java:6597)
        at android.view.View.performClickInternal(View.java:6574)
        at android.view.View.access$3100(View.java:778)
        at android.view.View$PerformClick.run(View.java:25885)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-02-16 00:27:36.639 14693-14693/com.example.gpa_tejadaa4_calculator I/Process: Sending signal. PID: 14693 SIG: 9
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/L_G5"
        android:layout_width="113dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.87"
        app:layout_constraintStart_toEndOf="@+id/C_H5"
        app:layout_constraintTop_toBottomOf="@+id/L_G4"
        android:importantForAutofill="no" tools:targetApi="o" />

    <EditText
        android:id="@+id/L_G4"
        android:layout_width="113dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.94"
        app:layout_constraintStart_toEndOf="@+id/C_H4"
        app:layout_constraintTop_toBottomOf="@+id/L_G3"
        android:importantForAutofill="no" tools:targetApi="o" />

    <EditText
        android:id="@+id/C_H5"
        android:layout_width="114dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/c5"
        app:layout_constraintTop_toBottomOf="@+id/C_H4"
        android:importantForAutofill="no" tools:targetApi="o" />

    <TextView
        android:id="@+id/c5"
        android:layout_width="67dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c4" />

    <TextView
        android:id="@+id/c3"
        android:layout_width="67dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_3"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c2" />

    <EditText
        android:id="@+id/C_H4"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/c4"
        app:layout_constraintTop_toBottomOf="@+id/C_H3"
        android:importantForAutofill="no" tools:targetApi="o" />

    <TextView
        android:id="@+id/c4"
        android:layout_width="67dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_4"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c3" />

    <EditText
        android:id="@+id/L_G3"
        android:layout_width="113dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toEndOf="@+id/C_H3"
        app:layout_constraintTop_toBottomOf="@+id/L_G2"
        android:importantForAutofill="no" tools:targetApi="o" />

    <EditText
        android:id="@+id/C_H3"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/c3"
        app:layout_constraintTop_toBottomOf="@+id/C_H2"
        android:importantForAutofill="no" tools:targetApi="o" />

    <EditText
        android:id="@+id/L_G2"
        android:layout_width="112dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toEndOf="@+id/C_H2"
        app:layout_constraintTop_toBottomOf="@+id/L_G1"
        android:importantForAutofill="no" tools:targetApi="o" />

    <EditText
        android:id="@+id/C_H2"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/c2"
        app:layout_constraintTop_toBottomOf="@+id/C_H1"
        android:importantForAutofill="no" tools:targetApi="o" />

    <TextView
        android:id="@+id/c2"
        android:layout_width="wrap_content"
        android:layout_height="21dp"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c1" />

    <TextView
        android:id="@+id/c1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="112dp"
        android:text="@string/course_1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/C_H1"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="100dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:inputType="numberDecimal"
        app:layout_constraintEnd_toStartOf="@+id/L_G1"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toEndOf="@+id/c1"
        app:layout_constraintTop_toTopOf="parent"
        android:importantForAutofill="no" tools:targetApi="o" />

    <EditText
        android:id="@+id/L_G1"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginLeft="24dp"
        android:layout_marginTop="100dp"
        android:layout_marginEnd="24dp"
        android:layout_marginRight="24dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/C_H1"
        app:layout_constraintTop_toTopOf="parent"
        android:importantForAutofill="no" tools:targetApi="o" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="78dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:onClick="calculateGPA"
        android:text="@string/compute_gpa"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/C_H5" />

    <TextView
        android:id="@+id/result"
        android:layout_width="66dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="170dp"
        android:layout_marginLeft="170dp"
        android:layout_marginTop="46dp"
        android:layout_marginEnd="175dp"
        android:layout_marginRight="175dp"
        android:layout_marginBottom="119dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button" />

</android.support.constraint.ConstraintLayout>

预期输出:计算出的GPA 实际结果:应用程序崩溃

2 个答案:

答案 0 :(得分:0)

public class MainActivity extends AppCompatActivity {

    private EditText ch1,ch2,ch3,ch4,ch5;
    private EditText g1,g2,g3,g4,g5;
    private Button gpa_calc;
    private TextView result;
     Double final =0;
    //private int credit_sum = 0;
    //private int grade_sum = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Credit Hours
        ch1 = (EditText)findViewById(R.id.C_H1);
        ch2 = (EditText)findViewById(R.id.C_H2);
        ch3 = (EditText)findViewById(R.id.C_H3);
        ch4 = (EditText)findViewById(R.id.C_H4);
        ch5 = (EditText)findViewById(R.id.C_H5);

        //Grades
        g1= (EditText)findViewById(R.id.L_G1);
        g2= (EditText)findViewById(R.id.L_G2);
        g3= (EditText)findViewById(R.id.L_G3);
        g4= (EditText)findViewById(R.id.L_G4);
        g5= (EditText)findViewById(R.id.L_G5);

        //Button
        gpa_calc = (Button) findViewById(R.id.button);
        //Result
        result = (TextView)findViewById(R.id.result);

        gpa_calc.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

               final= calculateGPA();
              result.setText(final.toString());

            }
        });
    }

    public double calculateGPA() {

        double quality_points = 0;
        double credit_sum = 0;
        double gpa=0;
        double chour1 = Double.valueOf(ch1.getText().toString());
        double chour2 = Double.valueOf(ch2.getText().toString());
        double chour3 = Double.valueOf(ch3.getText().toString());
        double chour4 = Double.valueOf(ch4.getText().toString());
        double chour5 = Double.valueOf(ch5.getText().toString());

        String l1 = String.valueOf(g1.getText());
        String l2 = String.valueOf(g2.getText());
        String l3 = String.valueOf(g3.getText());
        String l4 = String.valueOf(g4.getText());
        String l5 = String.valueOf(g5.getText());

        double[] creditArray = new double[]{chour1, chour2, chour3, chour4, chour5};
        String[] gradeArray = new String[]{l1,l2,l3,l4,l5};
        credit_sum = chour1+chour2+chour3+chour4+chour5;

        for(int i=0; i<gradeArray.length; i++){

            if (gradeArray[i].equals("A")){

                quality_points += (creditArray[i] * 4);

            }
            else if (gradeArray[i].equals("B")){

                quality_points += (creditArray[i] * 3);
            }
            else if (gradeArray[i].equals("C")){

                quality_points += (creditArray[i] * 2);
            }
            else if (gradeArray[i].equals("D")){

                quality_points += (creditArray[i] * 1);
            }
            else if (gradeArray[i].equals("F")){

                quality_points += (creditArray[i] * 0);
            }

        }

        gpa = (quality_points/credit_sum);
        String str = Double.toString(gpa);
       return gpa;
    }}

答案 1 :(得分:0)

这可能与您的问题无关,但我已解决了您的布局。当然,您仍然可以改善它。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/L_G5"
        android:layout_width="113dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginEnd="8dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/C_H5"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/C_H5"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/L_G4"
        android:layout_width="113dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginEnd="8dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/C_H4"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/C_H4"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/C_H5"
        android:layout_width="114dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/c5"
        app:layout_constraintStart_toEndOf="@+id/c5"
        tools:targetApi="o" />

    <TextView
        android:id="@+id/c5"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c4" />

    <TextView
        android:id="@+id/c3"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_3"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c2" />

    <EditText
        android:id="@+id/C_H4"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:inputType="textPersonName"
        app:layout_constraintStart_toEndOf="@+id/c4"
        app:layout_constraintTop_toBottomOf="@+id/C_H3"
        android:importantForAutofill="no" tools:targetApi="o" />

    <TextView
        android:id="@+id/c4"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_4"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c3" />

    <EditText
        android:id="@+id/L_G3"
        android:layout_width="113dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginEnd="8dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/C_H3"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/C_H3"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/C_H3"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/c3"
        app:layout_constraintStart_toEndOf="@+id/c3"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/L_G2"
        android:layout_width="112dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginEnd="8dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/C_H2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/C_H2"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/C_H2"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/c2"
        app:layout_constraintStart_toEndOf="@+id/c2"
        tools:targetApi="o" />

    <TextView
        android:id="@+id/c2"
        android:layout_width="70dp"
        android:layout_height="21dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="50dp"
        android:text="@string/course_2"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/c1" />

    <TextView
        android:id="@+id/c1"
        android:layout_width="70dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="112dp"
        android:text="@string/course_1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/C_H1"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:ems="10"
        android:hint="@string/credit_hours"
        android:importantForAutofill="no"
        android:inputType="numberDecimal"
        app:layout_constraintBaseline_toBaselineOf="@+id/c1"
        app:layout_constraintStart_toEndOf="@+id/c1"
        tools:targetApi="o" />

    <EditText
        android:id="@+id/L_G1"
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="32dp"
        android:layout_marginEnd="8dp"
        android:ems="10"
        android:hint="@string/Grade"
        android:importantForAutofill="no"
        android:inputType="textPersonName"
        app:layout_constraintBaseline_toBaselineOf="@+id/C_H1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/C_H1"
        tools:targetApi="o" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="78dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:text="@string/compute_gpa"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/C_H5" />

    <TextView
        android:id="@+id/result"
        android:layout_width="66dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="170dp"
        android:layout_marginTop="46dp"
        android:layout_marginEnd="175dp"
        android:layout_marginBottom="119dp"
        android:textSize="18sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button" />

</android.support.constraint.ConstraintLayout>