Java 在android文本视图中检测新行

Java 在android文本视图中检测新行,java,android,text,Java,Android,Text,我正在尝试创建我的第一个Android应用程序,它将帮助我做一些概述 非常简单,我试图编写某种检测,当一行以连字符开头时,下一次有新行时,连字符将放在新行前面 我正在寻找我应该寻找的任何指针或方向,因为这是我的第一个应用程序 或者在另一种意义上,什么是检测正在键入的文本并基于它更改EditText的最佳方法。您希望EditText有一个OnKeyListener,然后在侦听器的onKey(视图v,int-keyCode,KeyEvent事件)方法中,查看是否是事件是KeyEvent.ACTION

我正在尝试创建我的第一个Android应用程序,它将帮助我做一些概述

非常简单,我试图编写某种检测,当一行以连字符开头时,下一次有新行时,连字符将放在新行前面

我正在寻找我应该寻找的任何指针或方向,因为这是我的第一个应用程序


或者在另一种意义上,什么是检测正在键入的文本并基于它更改
EditText
的最佳方法。

您希望
EditText
有一个
OnKeyListener
,然后在侦听器的
onKey(视图v,int-keyCode,KeyEvent事件)
方法中,查看是否是
事件
KeyEvent.ACTION\u DOWN
keyCode
KeyEvent.keyCode\u ENTER
,如果是,则在编辑文本的末尾附加一个“-”。

您可以使用android的文本监视程序类,该类可以附加到事件

EditText mPasswordLength = (EditText)findViewById(R.id.password_length);
mPasswordLength.addTextChangedListener(new TextWatcher() {
    public void afterTextChanged(Editable s){
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){
    }
    public void onTextChanged(CharSequence s, int start, int before, int count){
    }
});

可用于编辑文本的方法已更改。关于触发这些事件的时间和原因的更详细描述将在本文中解释。请用最多投票数阅读答案。

由于OnKeyListener不适用于软键盘,我建议使用TextWatcher

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    if( -1 != charSequence.toString().indexOf("\n") ){
        // Do your stuff
    }
}
如果要用其他字符串替换此序列,请尝试以下操作:

public void afterTextChanged(Editable editable) {

    int i = editable.toString().indexOf("\n");
    if ( i != -1 ) {
        editable.replace(i, i+1, "");
    }
}
你完成考试了吗?