如何从屏幕上显示的EditText中获取文本(带行换行)
问题描述:
如何从屏幕上显示的多行EditText逐行获取文本?如何从屏幕上显示的EditText中获取文本(带行换行)
例如,如果在EditText中插入长文本(不包括\n
)它将显示在几行中。如何知道系统插入换行的位置?
答
它如果使用EditText.getLayout()
是可能的:
String text = editText.getText().toString();
List<String> lines = new ArrayList<>();
for (int i = 0; i< editText.getLayout().getLinesCount(); i++) {
lines.add(text.substring(editText.getLayout().getLineStart(i),
editText.getLayout().getLineEnd(i));
}
另外EditText.getLayout()
具有用于线的返回大小的方法:
getLineWidth()
getLineBounds()