第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

有辦法為Android中的EditText定義min和max值嗎?

有辦法為Android中的EditText定義min和max值嗎?

回首憶惘然 2019-08-02 07:02:23
有辦法為Android中的EditText定義min和max值嗎?我想為EditText.例如:如果任何人試圖在其中輸入一個(gè)月值,則該值必須介于1-12之間。我可以用TextWatcher但我想知道在布局文件或其他地方是否有其他方法可以做到這一點(diǎn)。編輯:我不想限制字符計(jì)數(shù)。我想限制價(jià)值。例如,如果我限制月份EditText當(dāng)我輸入12個(gè)字符時(shí),它會(huì)接受它,但是如果我輸入了22個(gè)字符,它就不能在我進(jìn)入的時(shí)候接受它。
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

如果min==3然后輸入以1或2開頭的任何數(shù)字是不可能的(例如:15,23)
如果min>=10那就不可能輸入任何東西,因?yàn)槊總€(gè)數(shù)字都必須從1,2,3開始.

據(jù)我理解,我們無法達(dá)到EditText類的簡(jiǎn)單使用帶來的值。InputFilterMinMax,至少對(duì)于min值來說不是這樣,因?yàn)楫?dāng)用戶輸入一個(gè)正數(shù)時(shí),這個(gè)值就會(huì)增加,我們可以很容易地執(zhí)行一個(gè)實(shí)時(shí)測(cè)試,以檢查它是否達(dá)到了極限,或者超出了范圍,并阻止了不符合要求的條目。測(cè)試min值是另一回事,因?yàn)槲覀儾荒艽_定用戶是否已經(jīng)完成輸入,因此無法決定是否應(yīng)該阻止。

這并不是OP所要求的,但為了驗(yàn)證目的,我在我的解決方案中將InputFilter若要測(cè)試最大值,請(qǐng)使用OnFocusChangeListener對(duì)象時(shí)重新測(cè)試最小值。EditText如果用戶完成了輸入,就會(huì)失去焦點(diǎn),如下所示:

package test;import android.text.InputFilter;import android.text.Spanned;public class InputFilterMax implements InputFilter {private int max;public InputFilterMax(int max) {
    this.max = max;}public InputFilterMax(String max) {
    this.max = Integer.parseInt(max);}@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {   
    try {
        String replacement = source.subSequence(start, end).toString(); 

        String newVal = dest.toString().substring(0, dstart) + replacement +dest.toString().substring(dend, dest.toString().length());

        int input = Integer.parseInt(newVal);

        if (input<=max)
            return null;
    } catch (NumberFormatException nfe) { }   //Maybe notify user that the value is not good      return "";}}

OnFocusChangeListenerMin

package test;import android.text.TextUtils;import android.view.View;import android.view.View.OnFocusChangeListener;public class OnFocusChangeListenerMin implements OnFocusChangeListener {private int min;public OnFocusChangeListenerMin(int min) {
    this.min = min;}public OnFocusChangeListenerMin(String min) {
    this.min = Integer.parseInt(min);}@Overridepublic void onFocusChange(View v, boolean hasFocus) {
    if(!hasFocus) {
        String val = ((EditText)v).getText().toString();
        if(!TextUtils.isEmpty(val)){
            if(Integer.valueOf(val)<min){
                //Notify user that the value is not good
            }

        }
    }}}

然后在活動(dòng)中設(shè)置InputFilterMaxOnFocusChangeListenerMinEditText注意:您可以在onFocusChangeListener.

mQteEditText.setOnFocusChangeListener( new OnFocusChangeListenerMin('20');mQteEditText.setFilters(new InputFilter[]{new InputFilterMax(getActivity(),'50')});





查看完整回答
反對(duì) 回復(fù) 2019-08-03
  • 3 回答
  • 0 關(guān)注
  • 355 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)