具有值textMultiLine的Android EditText inputType属性如何打破这些行?

时间:2017-09-18 21:01:52

标签: android android-layout android-edittext android-textwatcher

我有一个EditText字段,其属性inputType设置为textMultiLine,这会将文本分成几行,到目前为止一直很好。我已将TextWatcher附加到EditText,因此我可以检查是否有任何更改。在afterTextChanged方法中我想检查一行文本被分成2行,但textMultiLine属性没有添加新行char,所以我的问题是:

如果没有新行字符,如何检查EditText中的inputType属性设置为textMultiLine的文本行数是多少?

2 个答案:

答案 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()