如何从用户获取计时器的输入

时间:2013-11-22 08:42:08

标签: android input time timer

我希望用户输入计时器的分钟/秒

new CountDownTimer(30000, 1000) { }

我想要来自用户的30000(30秒)值

t= (EditText)findViewById(R.id.time);

该值存储在t

我如何实现这一目标?

new CountDownTimer(t, 1000) { }

这不会起作用......

3 个答案:

答案 0 :(得分:2)

你必须从Android的EditText中获取文本,将其转换为长毫秒。

t= (EditText)findViewById(R.id.time);
long userinput = Long.parseLong(t.getText().toString());
new CountDownTimer(userinput, 1000) { } ;

虽然你必须做一些输入验证检查,否则你可能会在以后遇到异常。

答案 1 :(得分:1)

  

new CountDownTimer(t,1000){}

t 变量为EditText - 其对象和CountDownTimer的第一个参数需要 long ,因此您需要获取EditText的内容,然后将其解析为长:

Long.parseLong(t.getText().toString());

注意:同样好的做法是验证用户的输入(输入并不总是正确的,你需要假设用户是“愚蠢的”并且可以添加一些废话)如果它的正确数字可以是解析为long:

String input = t.getText().toString();
if (input.matches("\\d+")) {
   // its valid number
   Long.parseLong(t.getText().toString());
}

或者,当您为EditText指定 inputType 时,可以通过XML确保它:

android:inputType="number"

答案 2 :(得分:0)

tEditText,如果您希望获得Long中的值,则必须使用:

    Long.parseLong(t.getText().toString())

如果您想要任何其他类型,则必须从t.getText.toString()

进行投射