我有一个EditText
字段,其属性inputType设置为textMultiLine,这会将文本分成几行,到目前为止一直很好。我已将TextWatcher
附加到EditText
,因此我可以检查是否有任何更改。在afterTextChanged方法中我想检查一行文本被分成2行,但textMultiLine属性没有添加新行char,所以我的问题是:
如果没有新行字符,如何检查EditText
中的inputType属性设置为textMultiLine的文本行数是多少?
答案 0 :(得分:2)
无需使用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
}
});
答案 1 :(得分:1)
试试这个:
editText.post(new Runnable() {
@Override
public void run() {
Log.d(TAG, "Line count: " + editText.getLineCount());
}
});
<{1}}渲染完成后,将在UI线程上调用 getLineCount()
。