我有一个EditText
属性 inputType 设置为 textMultiLine 的字段,这会将文本分成几行,到目前为止还不错。我附上了一个TextWatcher
,EditText
所以我可以检查是否有任何变化。在 afterTextChanged 方法中,我想检查一行文本何时被分成 2 行,但 textMultiLine 属性没有添加新行字符,所以我的问题是:
如果没有换行符,如何检查EditText
输入类型属性设置为 textMultiLine 的文本已写入多少行?
我有一个EditText
属性 inputType 设置为 textMultiLine 的字段,这会将文本分成几行,到目前为止还不错。我附上了一个TextWatcher
,EditText
所以我可以检查是否有任何变化。在 afterTextChanged 方法中,我想检查一行文本何时被分成 2 行,但 textMultiLine 属性没有添加新行字符,所以我的问题是:
如果没有换行符,如何检查EditText
输入类型属性设置为 textMultiLine 的文本已写入多少行?
无需使用Runnable
或发布到消息队列。只需调用EditText.getLineCount()
您的afterTextChanged()
方法:
final EditText editText = /* your EditText here */;
editText.addTextChangedListener(new TextWatcher() {
...
@Override
public void afterTextChanged(Editable editable) {
int numLines = editText.getLineCount();
// your code here
}
});
尝试这个:
editText.post(new Runnable() {
@Override
public void run() {
Log.d(TAG, "Line count: " + editText.getLineCount());
}
});
getLineCount()
editText
渲染完成后将在 UI 线程上调用。