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 事件。
希望這可以幫助你 :)
添加回答
舉報