我希望用户输入计时器的分钟/秒
new CountDownTimer(30000, 1000) { }
我想要来自用户的30000(30秒)值
t= (EditText)findViewById(R.id.time);
该值存储在t
中我如何实现这一目标?
new CountDownTimer(t, 1000) { }
这不会起作用......
答案 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)
t
为EditText
,如果您希望获得Long
中的值,则必须使用:
Long.parseLong(t.getText().toString())
如果您想要任何其他类型,则必须从t.getText.toString()