在android文本视图中检测新行

时间:2011-09-11 02:28:40

标签: java android text

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

很简单,我试图写一些检测,当一行以连字符开头时,下一次有一个新行时,连字符将放在该新行的前面。

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

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

3 个答案:

答案 0 :(得分:1)

你可以使用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){
    }
});

您可以用来编辑文本的方法是onTextChanged。有关何时以及为何触发这些事件的详细说明,请参阅此post.。用最多票数阅读答案。

答案 1 :(得分:1)

由于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, "");
    }
}

答案 2 :(得分:0)

您希望OnKeyListenerEditText,然后在听众的onKey(View v, int keyCode, KeyEvent event)方法中,查看eventKeyEvent.ACTION_DOWN还是{{ 1}}用于keyCode,如果是,则在编辑文本的末尾添加“ - ”。