6

我们如何从 multiLine 中提取一条线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有没有更简单的方法来做到这一点,比如在字符串中寻找?

4

3 回答 3

11

尝试使用String.split(). 代码示例:

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

streets = multiLines.split(delimiter);

现在你有一系列的街道。

例如,假设您EditText阅读“1st St.\nHighway Rd.\nUniversity Ave”。(或者是那 3 条街道被换行符隔开,而不是你实际看到的\n)。按照我为您提供的代码示例,

  • multiLines变为“1st St.\nHighway Rd.\nUniversity Ave.”
  • streets = multiLines.split(delimiter);用街道名称填充数组streets,即

    • 街道[0] = "第一街"
    • 街道[1] = "高速公路路。"
    • 街道[2] = "大学大道。"
于 2012-06-28T14:57:32.343 回答
4

试试这个:

String text = streetEt.getText();

String firstLine = text.substring(0,text.indexOf("\n"));
于 2012-06-28T14:54:59.057 回答
1

试试这个,

String text=editText1.getText().toString().replace("\n", " ").trim();
于 2014-04-05T05:21:56.673 回答