2012-06-28 4 views
4

Как мы можем извлечь строку из multiLine EditText?Извлечь строку из EditText

Я попробовал этот путь, но я знаю, что это не очень хорошая практика:

String street1 = ""; 
String street2 = ""; 
EditText streetEt = ((EditText) findViewById(R.id.street)); 
ExtractedText extractedText = new ExtractedText(); 
ExtractedTextRequest req = new ExtractedTextRequest(); 
int endOfLineOffset = 0; 

req.hintMaxLines = 1; 
streetEt.extractText(req, extractedText); 
endOfLineOffset = extractedText.partialEndOffset; 
street1 = extractedText.toString(); 
... 

есть более простой способ сделать это как искать \n в строке?

+0

Я немного запутался, вы пытаетесь извлечь текст из TextView? – JuiCe

+0

каждая его строчка –

+0

Ах, проигнорируйте мой ответ ниже: D Я просто перечитаю ваш вопрос извините – JuiCe

ответ

10

Попробуйте использовать String.split(). Пример кода:

String multiLines = streetEt.getText().toString(); 
String[] streets; 
String delimiter = "\n"; 

streets = multiLines.split(delimiter); 

Теперь у вас есть множество улиц.

Скажем, например, ваш номер EditText читает «1-й Санкт-н-н-эль-Рид. \ NUniversity Ave.». (или это 3 улицы, разделенные разрывами строк, вместо того, чтобы вы действительно видели \n). В соответствии с приведенным ниже примером кода я предоставил вам,

  • multiLines становится «1-й Санкт-н-р-н-н-р-н.
  • streets = multiLines.split(delimiter); заполняет массив streets с названиями улиц, т.е.

    • улицы [0] = "первый Санкт"
    • улицы [1] = "Highway Rd."
    • улицы [2] = "Университетский пр."
+0

Это намного лучший способ добиться этого, чем мой ответ. –

+0

Я пытаюсь использовать ваш код для реализации функции поиска в текстовом редакторе в android. Но я не могу найти следующий элемент в списке массивов. Я также разместил вопрос http://stackoverflow.com/questions/ 40670878/how-to-implement-search-on-a-multiline-edit-text-in-android – AndroidNewBee

+0

Этот ответ не заполнен. Пользователь может вводить очень длинную последовательность, и когда она достигает конца текущей строки, она продолжается на следующем. Таким образом, мы можем иметь несколько строк без символа новой строки. Правильный ответ: https://stackoverflow.com/a/6273546/1140997 – rocknow

3

Попробуйте это:

String text = streetEt.getText(); 

String firstLine = text.substring(0,text.indexOf("\n")); 
1

Попробуйте это,

String text=editText1.getText().toString().replace("\n", " ").trim(); 
+0

этот код действительно работает. Я стараюсь. –

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