亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在EditText中使用numberDecimal inputType的十進制分隔符逗號(',')

在EditText中使用numberDecimal inputType的十進制分隔符逗號(',')

楊__羊羊 2019-11-27 10:55:52
輸入inputType numberDecimal中EditText使用點“?!?。作為小數點分隔符。在歐洲,通常使用逗號','代替。即使我的語言環境設置為德語,小數點分隔符仍為“。”。有沒有辦法將逗號作為小數點分隔符?
查看完整描述

3 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

此處提供的“數字”解決方案的一種變體:


char separator = DecimalFormatSymbols.getInstance().getDecimalSeparator();

input.setKeyListener(DigitsKeyListener.getInstance("0123456789" + separator));

考慮到語言環境分隔符。


查看完整回答
反對 回復 2019-11-27
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

EditText的以下代碼貨幣掩碼($ 123,125.155)


Xml布局


  <EditText

    android:inputType="numberDecimal"

    android:layout_height="wrap_content"

    android:layout_width="200dp"

    android:digits="0123456789.,$" />


EditText testFilter=...

testFilter.addTextChangedListener( new TextWatcher() {

        boolean isEdiging;

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

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


        @Override public void afterTextChanged(Editable s) {

            if(isEdiging) return;

            isEdiging = true;


            String str = s.toString().replaceAll( "[^\\d]", "" );

            double s1 = Double.parseDouble(str);


            NumberFormat nf2 = NumberFormat.getInstance(Locale.ENGLISH);

            ((DecimalFormat)nf2).applyPattern("$ ###,###.###");

            s.replace(0, s.length(), nf2.format(s1));


            isEdiging = false;

        }

    });


查看完整回答
反對 回復 2019-11-27
  • 3 回答
  • 0 關注
  • 5534 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號