布局的问题和错误在android应用程序开发使用kotlin

我刚刚进入kotlin,我试图用Android studio 3.0 Canary 2,JRE 1.8.0创建一个基本的计算器。 不幸的是,当我将应用程序安装到手机中时,结果与下图不同

科特林计算器在我的手机

在我的android工作室,设计是这样的

在Android工作室kotlin计算器

这是我的xml

     

虽然有第二个问题,

我试图输入数字字段,当我点击+(添加)按钮,它立即崩溃。

这是错误

 FATAL EXCEPTION: main Process: com.example.jeffrey.kotlincalculator, PID: 20432 java.lang.NumberFormatException: Invalid int: "" at java.lang.Integer.invalidInt(Integer.java:138) at java.lang.Integer.parseInt(Integer.java:358) at java.lang.Integer.parseInt(Integer.java:334) at com.example.jeffrey.kotlincalculator.MainActivity.getNum1(MainActivity.kt:42) at com.example.jeffrey.kotlincalculator.MainActivity$onCreate$1.onClick(MainActivity.kt:24) at android.view.View.performClick(View.java:5207) at android.view.View$PerformClick.run(View.java:21177) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5438) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 

这显然表明INT是一个错误。

这是我的MainActivity代码。

 package com.example.jeffrey.kotlincalculator 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 import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val result = findViewById(R.id.textview_result) as TextView val button_add = findViewById(R.id.button_add) as Button val button_minus = findViewById(R.id.button_minus) as Button val button_multiple = findViewById(R.id.button_multiple) as Button val button_divide = findViewById(R.id.button_divide) as Button button_add.setOnClickListener(View.OnClickListener{ view -> result.text = (getNum1() + getNum2()).toString() }) button_minus.setOnClickListener(View.OnClickListener{ view -> result.text = (getNum1() - getNum2()).toString() }) button_multiple.setOnClickListener(View.OnClickListener{ view -> result.text = (getNum1() * getNum2()).toString() }) button_divide.setOnClickListener(View.OnClickListener{ view -> result.text = (getNum1() / getNum2()).toString() }) } fun getNum1(): Int{ val input_num1 = findViewById(R.id.editText_num1) as EditText; return Integer.parseInt(input_num1.text.toString()); } fun getNum2(): Int{ val input_num2 = findViewById(R.id.editText_num2) as EditText; return Integer.parseInt(input_num2.text.toString()); } } 

事实certificate,当我parseInt从电话检索的字符串是一个错误。 请帮忙:)

你的XML有tools:layout_editor_absoluteX="40dp" tools:layout_editor_absoluteY="92dp"元素,这意味着这些约束将只适用于设计器窗口。 以下是可帮助您理解如何使用约束布局的培训: https : //developer.android.com/training/constraint-layout/index.html