从EditText中提取一行

时间:2012-06-28 14:49:30

标签: android string android-widget android-edittext

我们如何从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

3 个答案:

答案 0 :(得分:9)

尝试使用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 Avenue。”
  • streets = multiLines.split(delimiter);使用街道名称填充数组streets,即

    • streets [0] =“1st St。”
    • streets [1] =“Highway Rd。”
    • 街道[2] =“大学大道”

答案 1 :(得分:4)

试试这个:

String text = streetEt.getText();

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

答案 2 :(得分:1)

试试这个,

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