1 回答

TA贡献1876条经验 获得超6个赞
一般来说,Edittexts 不能接受多个输入,所以我们需要一个解决方法。方案一:选择约束用户以mm:ss格式输入,解析如下:
String input[] = mEditTextInput.getText().toString().split(":");
//input[0] is minutes and input[1] is seconds
方案二:使用两个Edittexts,一个挨着一个,中间放一个Textview保存字符串“:”,得到输入如下:
String input1 = mEditTextInput.getText().toString();
String input2 = mEditTextInput2.getText().toString();
选项 3:使用简单的 Textview,并检测用户的按键以填写值。您还需要变量来检测到目前为止有效按下的次数(输入数字时增加,按 x键时减少)。比如说,Textview 中的初始值是 00:00,当检测到按键“1”时,你可以使用下面的代码来显示它:
String str=getKey();
String str2=mTextView.getText().toString();
if(numKey==0)//numkey is the number of valid presses
{
String toSet="0"+str+":00";
mTextView.setText(toSet);
}
else if(numKey==1)
{
String toSet=str+str2.substring(1);
mTextView.setText(toSet);
}
//and so on...
getKey()函数可以实现如下:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_A:
{
//your Action code
return true;
}
}
return super.onKeyDown(keyCode, event);
}
实际上,您可以删除该行
String str=getKey();
代替操作,您可以简单地调用函数(比如 formatTextView)并将键作为参数传递给它,它将负责设置 textView。最后,使用mTextView.getText().toString(); 根据需要取回您的值;
注意:如果您的片段有任何其他 Edittext,选项 3 将不起作用,因为这将消耗 onKeyPressed 事件。
希望这可以帮助你 :)
添加回答
举报