i有一个 EditText
字段,其中属性输入键设置为textmultiline,这将文本分为几行,到目前为止很好。我将TextWatcher
附加到EditText
上,以便检查任何更改。在方法后,我想检查何时将一行文本分解为2行,但是TextMultiline属性不会添加新的行char,所以我的问题是:
如果没有新的行字符,我如何检查在EditText
中写了多少条文本,将InputType属性设置为TextMultiline?
无需使用Runnable
或发布到消息队列。只需在您的afterTextChanged()
方法中调用EditText.getLineCount()
:
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线程上调用。