我想写这样的东西:
今天是星期一//这是20个字符现在我想跳到新行
Tommorow是// 20个字符,它跳过了一行,因为最后一个输入是一个完整的单词。
星期一//这被跳过了,因为单词结束了20个字符。
当它达到20个字符时,如何实现每行的最大字符数并指定回车符(如果单词不完整则将单词移动到新行)?
可以用于例如:
一个小说写作程序。
我想我必须为输入的每个字符使用某种读取功能。
答案 0 :(得分:1)
我想你可以用TextWatcher
来达到这个效果。一种可能的解决方案是听取前一个换行符,并在20个字符后设置自动换行符:
editText = (EditText) findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if ((editText.length()%20) == 0){
editText.getText().insert(editText.length(), "\n");
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
我怀疑这会在刷卡键盘上起作用。它还会阻止您使用退格键返回上一行。要抵消这种情况需要更复杂的内容 - 您可以使用for
循环来持续监听beforeTextChanged
中的最后一个换行符,或使用带有覆盖的Boolean
开关{{1对于onKey
。
答案 1 :(得分:0)
您可以循环播放字符串,并在每次计数器达到20时放置\n
,或直到达到字符串的末尾。