从 EditText 中提取一行
Posted
技术标签:
【中文标题】从 EditText 中提取一行【英文标题】:Extract a line from an EditText 【发布时间】:2012-06-30 03:03:18 【问题描述】:我们如何从多行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
?
【问题讨论】:
我有点困惑,你是不是要从 TextView 中提取文本? 啊,请忽略我下面的回答:D 我只是重读了您的问题,抱歉 其实可以直接使用getText()方法,然后在THAT字符串中搜索\n即可。 杰克的回答似乎不错 How do I get the text at a specific line in a TextView的可能重复 【参考方案1】:尝试使用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
,即
【讨论】:
这比我的回答要好得多。 我正在尝试使用您的代码在 android 的编辑文本中实现搜索功能。但我无法搜索数组列表中的下一个元素。我还发布了一个问题 ***.com/questions/40670878/… 这个答案不完整。用户可以输入很长的序列,当它到达当前行的末尾时,它会继续下一个。所以我们可以有几行没有任何新的行符号。正确答案:***.com/a/6273546/1140997【参考方案2】:试试这个:
String text = streetEt.getText();
String firstLine = text.substring(0,text.indexOf("\n"));
【讨论】:
【参考方案3】:试试这个,
String text=editText1.getText().toString().replace("\n", " ").trim();
【讨论】:
以上是关于从 EditText 中提取一行的主要内容,如果未能解决你的问题,请参考以下文章
EditText光标默认在第一行,edittext不显示键盘 ,edittext失去焦点
android------解决editText只输入一行和textView不显示过多的内容
android------解决editText只输入一行和textView不显示过多的内容