Android 值为 textMultiLine 的 EditText inputType 属性如何断行?
How Android EditText inputType attribute with value textMultiLine breaks the lines?
我有一个 EditText
字段,其属性 inputType 设置为 textMultiLine,这可以将文本分成多行,到目前为止一切顺利。我将 TextWatcher
附加到 EditText
以便我可以检查是否有任何更改。在 afterTextChanged 方法中,我想检查一行文本何时被分成两行,但是 textMultiLine 属性没有添加新行字符,所以我的问题是:
在没有换行符的情况下,如何检查输入类型属性设置为 textMultiLine 的 EditText
中写入了多少行文本?
试试这个:
editText.post(new Runnable() {
@Override
public void run() {
Log.d(TAG, "Line count: " + editText.getLineCount());
}
});
getLineCount()
将在 editText
渲染完成后在 UI 线程上调用。
无需对消息队列使用 Runnable
或 post。只需在 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
字段,其属性 inputType 设置为 textMultiLine,这可以将文本分成多行,到目前为止一切顺利。我将 TextWatcher
附加到 EditText
以便我可以检查是否有任何更改。在 afterTextChanged 方法中,我想检查一行文本何时被分成两行,但是 textMultiLine 属性没有添加新行字符,所以我的问题是:
在没有换行符的情况下,如何检查输入类型属性设置为 textMultiLine 的 EditText
中写入了多少行文本?
试试这个:
editText.post(new Runnable() {
@Override
public void run() {
Log.d(TAG, "Line count: " + editText.getLineCount());
}
});
getLineCount()
将在 editText
渲染完成后在 UI 线程上调用。
无需对消息队列使用 Runnable
或 post。只需在 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
}
});