2014-02-17 4 views
0

это часто спрашивают, как здесь Android emulator : insert negative number?Android EditText вставить отрицательное число

Я имею установку в EditText:

 <EditText 
     android:id="@+id/edWminLevel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.3" 
     android:inputType="numberDecimal|numberSigned" 
     android:text="0" /> 

при попытке вставить отрицательное число, жму «-» и он вставляет «-» , но тогда это не позволит мне вставлять какую-либо другую цифру! Он работает только путем вставки «-» после того, как был вставлен полный номер.

Это БЫСТРО?

+1

я могу сделать это с вашим кодом. –

+0

так должен быть телефон? это Android 4.2.1 – user1616685

+0

спасибо за ответ, но в конце это была моя ошибка! – user1616685

ответ

0

Ответ прост: это не BUG это программатор!

Я просто опубликую это, чтобы помочь другим.

я имел InputFilter прикладывается к EditText ...

EdWMin.setFilters(new InputFilter[] { new DecimalDigitsInputFilter(7, 2) }); 

здесь исправление позволяет знаки перед цифрами

public class DecimalDigitsInputFilter implements InputFilter { 

    Pattern mPattern; 

    public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) { 
     mPattern=Pattern.compile("[-+]?[0-9]{0," + (digitsBeforeZero-1) + "}+((\\.[0-9]{0," + (digitsAfterZero-1) + "})?)||(\\.)?"); 
    } 



    @Override 
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { 

      Matcher matcher=mPattern.matcher(dest);  
      if(!matcher.matches()) 
       return ""; 
      return null; 
     } 

    } 
Смежные вопросы