Здравствуйте.
Скажите пожалуйста как в EditText добавлять к вводимому значению различные символы в конце например "%" или "руб.", и было бы здорово еще играть со стилями отображения его: 80%.
Спасибо.
"Приставка" единица измерения к EditText
Re: "Приставка" единица измерения к EditText
Код: Выделить всё
EditeText et = (EditText)findViewById(R.id.edittext1);
et.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
et.setText(et.getText().toString() + " руб.");
}
}
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: "Приставка" единица измерения к EditText
Спасибо, но почему-то вырубается (Unfortunately)
У меня и раньше работало:
String text = text_percent.getText().toString().trim();
Toast.makeText(getBaseContext(), text+"%", Toast.LENGTH_SHORT).show();
однако: text_percent.setText("3%") не работает.
А я просто думал, что так нельзя ибо если мы пишем текст то "%" там нет, а если редактируем? То текст уже содержит "%".
У меня и раньше работало:
String text = text_percent.getText().toString().trim();
Toast.makeText(getBaseContext(), text+"%", Toast.LENGTH_SHORT).show();
однако: text_percent.setText("3%") не работает.
А я просто думал, что так нельзя ибо если мы пишем текст то "%" там нет, а если редактируем? То текст уже содержит "%".
Re: "Приставка" единица измерения к EditText
Выделил время, разобрался, может кому пригодится:
Код: Выделить всё
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);
}
}
});