如何获得以毫秒为单位的时间输入?


private long START_TIME_IN_MILLIS;
private long TimeLeftInMillis = START_TIME_IN_MILLIS;

我已经声明了这些变量,这意味着存储来自EditText的输入,但在我的OnCreateView中,我有这行

START_TIME_IN_MILLIS = edtInsertTime.getText();

但它给了我一个错误,我如何得到以毫秒为单位的时间输入并将其存储在START_TIME_IN_MILLIS中?

你没有发布你收到的错误,这将是有帮助的,因为它可能有一百种原因。

看看这段代码,你有一个类型为long的变量(这是一个数字类型),你从edtInsetTime.getText()中得到了什么?,类型"可编辑";根据文档,您不能将Editable对象存储在长变量中。

https://developer.android.com/reference/android/widget/EditText

public Editable getText ()
Returns Editable - The text displayed by the text view.

要从中获得长值,首先需要从这个EditText中获得一个String,然后将其转换为长格式,然后将其分配给变量。

示例代码为。

START_TIME_IN_MILLIS = Long.valueOf(edtInsertTime.getText().toString());

打破它

String text = edtInsertTime.getText().toString()返回edittext

的String值。然后该值可以通过使用

等方法将String解析为long来转换为长值。
Long.parseLong(text)

Long.valueOf(text)

问这个问题意味着你对java中的类型是如何工作的没有基本的了解,所以请随意阅读https://www.baeldung.com/java-primitives

最新更新