2015-09-23 9 views
0

Я хочу добавить предварительно заполненный текст, например код страны, в edittext для мобильного телефона. Предварительно заполненный текст должен быть недействительным. Я попробовал это, переопределив onSelectionChanged(). Есть ли лучшее решение?Заполненный текст в edittext

final EditText editText = new EditText(this){ 
     int prevSelection; 
     @Override 
     protected void onSelectionChanged(int selStart, int selEnd) { 
      if(selStart < 4){ 
       setSelection(prevSelection); 
       return; 
      } 
      prevSelection = selStart; 
     } 
    }; 
+0

setText и set editable to false? – Breavyn

+0

editText.setHint ("") – Smashing

+0

или просто установите текст, а затем установите значение enable false – Smashing

ответ

0

Это то, что вы хотите?

editText.setText("This is a prefilled text"); // This to set prefilled text 
editText.setFocusable(false);     // This disable editing 

ИЛИ

editText.setHint("This is sample country code"); // this is the hint 

Подсказка что-то вроде этого:

enter image description here

+0

Я думаю, он просто хочет, чтобы префикс всегда был там, а не отключенное издание. – shkschneider

0

попробовать этот

final EditText editText = new EditText(this){ 
     int prevSelection; 
     @Override 
     protected void onSelectionChanged(int selStart, int selEnd) { 
      if (!editText.getText().toString().startsWith("pre filled text")){ 
       editText.setText("pre filled text" + editText.getText().toString()); 
      } 

     } 
    }; 

Функция проверяет, соответствует ли EditText начать ш Ith в «укажи» текст, если не будет добавлять его в начале EditText

0

Реализовать android.text.TextWatcher в Activity или Fragment, содержащей EditText.

В код afterTextChanged введите код страны в начало текста.

Было бы хорошо проверить, был ли код страны уже заполнен, прежде чем добавлять его. Будьте осторожны, чтобы не кончиться бесконечным циклом.