2017-09-25 66 views
0

我是Android新手,目前正在開發定時器應用程序以熟悉它。定時器應用程序的輸入法

我想獲得用於設置計時器的用戶輸入。我想用HH:mm:ss格式。用戶界面最初應顯示「00h 00m 00s」字符串和數字鍵盤,並且當用戶鍵入數字時,字段應從右向左填滿,在第二/分鐘/小時之間溢出。 示例: 用戶類型「123」> 0點01分23秒

我當前的想法是具有用於數字3個TextViews和3個TextViews爲H/M/S標記,然後也用數字上加10個按鈕它填補了領域。但我猜想必須有一個更簡單的方法來做到這一點。 我的問題是:是否有可能使軟輸入法和EditTexts發生這種情況?只要格式約束(00h 00m 00s)得到尊重,我也會對其他方式實現這一點感興趣。

回答

0

可以使用Android:的inputType =「號」來顯示數字keyboard.Use TextWatcher顯示您result.For例如:

EditText tv_filter = (EditText) findViewById(R.id.filter); 
TextWatcher fieldValidatorTextWatcher = new TextWatcher() { 
    @Override 
    public void afterTextChanged(Editable s) { 
    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     if (filterLongEnough()) { 
      populateList(); 
     } 
    } 

    private boolean filterLongEnough() { 
     return tv_filter.getText().toString().trim().length() > 2; 
    } 
}; 
tv_filter.addTextChangedListener(fieldValidatorTextWatcher); 

,然後在年底,使用texView顯示你的結果你相應地分割輸入字符串的邏輯。我知道它非常通用,但你的問題將得到解決。

+0

嗨,謝謝你的回覆。 :) 你是說我需要android:inputType =「Number」來獲取輸入和_one_ TextView來顯示它的_one_ EditText字段嗎?我對此很新,我很難監督你的代碼片段。 :)這是什麼片段打算做?我看到我們向tv_filter EditText添加了一個TextChangedListener,但是這是幹什麼的? – Gugger

+0

這段代碼會將textWatcher添加到用戶要輸入數字的編輯文本字段中,然後您可以在此處實現分隔輸入的邏輯,然後在textView中設置所需的結果。例如:在這裏,我使用我的方法filterLong足夠做一些事情,並填充一個列表。但是你可以改變它。'code' String [] strarr =(s.toString())。split(「\\ s」); strarr [0] .concat(「:」); strarr [1] .concat(「:」); strarr [2] .concat(「:」); StringBuilder sb = new StringBuilder(); sb.append(strarr [0] + strarr [1] + strarr [2]); – Sbm4034

+0

我明白了,所以本質上需要實現populatelist。這使得現在完美無缺。但是,不會將我輸入到EditText中的文本顯示出來嗎?或者想法是在用戶界面中實際上有一個EditText,但隱藏它? – Gugger

相關問題