Страница 1 из 1

"Приставка" единица измерения к EditText

Добавлено: 09 ноя 2012, 11:36
Ullis
Здравствуйте.
Скажите пожалуйста как в EditText добавлять к вводимому значению различные символы в конце например "%" или "руб.", и было бы здорово еще играть со стилями отображения его: 80%.
Спасибо.

Re: "Приставка" единица измерения к EditText

Добавлено: 10 ноя 2012, 00:26
rezak90

Код: Выделить всё

EditeText et = (EditText)findViewById(R.id.edittext1);
et.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
et.setText(et.getText().toString() + " руб.");
}
}

Re: "Приставка" единица измерения к EditText

Добавлено: 13 ноя 2012, 14:41
Ullis
Спасибо, но почему-то вырубается (Unfortunately)
У меня и раньше работало:
String text = text_percent.getText().toString().trim();
Toast.makeText(getBaseContext(), text+"%", Toast.LENGTH_SHORT).show();
однако: text_percent.setText("3%") не работает.
А я просто думал, что так нельзя ибо если мы пишем текст то "%" там нет, а если редактируем? То текст уже содержит "%".

Re: "Приставка" единица измерения к EditText

Добавлено: 10 янв 2013, 14:18
Ullis
Выделил время, разобрался, может кому пригодится:

Код: Выделить всё

text_percent = (EditText)findViewById(R.id.text_percent);  
        text_percent.addTextChangedListener(new TextWatcher() {          	
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
            @Override
            public void afterTextChanged(Editable s) {  
//это сделал для того что бы не оставались "%" если пользователь удалил значение (появляется плейсхолдер "%" вместо значения "%")          	
              String text = text_percent.getText().toString().trim();
              if(text.length() == 1){          		
            		text_percent.removeTextChangedListener(this);
            		text_percent.setText("");
            		text_percent.addTextChangedListener(this);
              }
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            	if(s.toString()!=""){
            		text_percent.removeTextChangedListener(this);
            		String cleanString = s.toString().replaceAll("[%]", "");
            		text_percent.setText(cleanString+"%");
            		text_percent.setSelection(cleanString.length());
            		text_percent.addTextChangedListener(this);
            	}
            }
          });