我正在尝试创建我的第一个Android应用程序,它将帮助我做一些概述。
很简单,我试图写一些检测,当一行以连字符开头时,下一次有一个新行时,连字符将放在该新行的前面。
我正在寻找我应该寻找的任何指针或方向,因为这是我的第一个应用程序。
或者在另一种意义上,检测正在键入的文本的最佳方法是什么,并根据它更改EditText
。
答案 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)
您希望OnKeyListener
为EditText
,然后在听众的onKey(View v, int keyCode, KeyEvent event)
方法中,查看event
是KeyEvent.ACTION_DOWN
还是{{ 1}}用于keyCode
,如果是,则在编辑文本的末尾添加“ - ”。