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

Интерфейс, диалоги, темы, стили, меню
Ответить
Ullis
Сообщения: 11
Зарегистрирован: 03 июл 2012, 12:47

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

Сообщение Ullis » 09 ноя 2012, 11:36

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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 10 ноя 2012, 00:26

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

EditeText et = (EditText)findViewById(R.id.edittext1);
et.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
et.setText(et.getText().toString() + " руб.");
}
}
R.id.team
Политика на форуме запрещена

Ullis
Сообщения: 11
Зарегистрирован: 03 июл 2012, 12:47

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

Сообщение Ullis » 13 ноя 2012, 14:41

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

Ullis
Сообщения: 11
Зарегистрирован: 03 июл 2012, 12:47

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

Сообщение Ullis » 10 янв 2013, 14:18

Выделил время, разобрался, может кому пригодится:

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

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);
            	}
            }
          });

Ответить