问题描述
我使用了三个编辑文本来创建一个计算加速度的应用程序,但是当用户输入了错误的数字(如“ .3”)或没有输入任何数字时,我分别收到了无效的双重错误“”(.3)” ..我正在使用android studio kotlin代码...请在说明中添加源代码
<EditText
android:id="@+id/v1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autofillHints=""
android:ems="10"
android:hint="@string/initial_veLocity"
android:inputType="numberSigned|numberDecimal"
android:textColor="#F8F5F5"
android:textColorHint="#FFFFFF"
android:textSize="24sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/s"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:autofillHints=""
android:ems="10"
android:hint="@string/time"
android:inputType="numberSigned|numberDecimal"
android:textColor="#FFFFFF"
android:textColorHint="#FAF6F6"
android:textSize="24sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/v2" />
<Button
android:id="@+id/acceleration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:background="#FFFFFF"
android:text="@string/acceleration1"
android:textColor="#070707"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/s" />
<TextView
android:id="@+id/n"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/s1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="@string/ms"
android:textColor="#EDECEC"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/n" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:text="@string/_2g"
android:textColor="#FFFFFF"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/s1" />
<EditText
android:id="@+id/v2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:autofillHints=""
android:ems="10"
android:hint="@string/final_veLocity"
android:inputType="numberSigned|numberDecimal"
android:textColor="#FFFFFF"
android:textColorHint="#FFFFFF"
android:textSize="24sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/v1" />
val Int:Number=(((v2.text.toString().todouble())-(v1.text.toString().todouble()))/(s.text.toString().todouble()))
n.setText(Int.toString())
Toast.makeText(this,"acceleration equals",Toast.LENGTH_LONG).show()
}
}
fun Math (Int:Number) {
val Int:Number=(((v2.text.toString().todouble())-(v1.text.toString().todouble()))/(s.text.toString().todouble()))
n.setText(kotlin.Int.toString())
}
}
解决方法
您似乎在声明一个整数val Int:
,并试图计算双精度值
改为尝试
val Double:Number=(((v2.text.toString().toDouble())-(v1.text.toString().toDouble()))/(s.text.toString().toDouble()))
n.setText(Double.toString())
Toast.makeText(this,"Acceleration equals",Toast.LENGTH_LONG).show()
}
}
fun Math (Double:Number) {
val Double:Number=(((v2.text.toString().toDouble())-(v1.text.toString().toDouble()))/(s.text.toString().toDouble()))
n.setText(kotlin.Double.toString())
}
}