EditText 和 Enter 键

3

我希望你能实现以下功能:

  1. 在EditText中按Enter键可以返回并提交文本
  2. 按shift+Enter键可以在EditText中换行

这是代码,但是它不能正常工作。按Enter和shift+Enter没有区别(没有换行):

EditText text=(EditText)findViewById(R.id.text);
text.setOnEditorActionListener( new OnEditorActionListener() {
@Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if ( (actionId == EditorInfo.IME_ACTION_DONE) || ( (event.isShiftPressed()==false) && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) && (event.getAction() == KeyEvent.ACTION_DOWN ) ) ){
Editable buff=(Editable)v.getText(); writeText( buff.toString() );
context.finish(); // texten sparad här o activity avslutas
return true; } return false; } });

在layout.xml中:

android:inputType="text|textMultiLine"
android:imeOptions="actionDone"
1个回答

4
我认为你需要使用一个shift键监听器,并保持一个布尔值来检测当你的shift键被按下时,就像这样: Android shift key listener
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) 
{
    switch (v.getId()) 
    {
        case R.id.myEditTextId:
        if(keyCode==59)//59 is shift's keycode
        //do your stuff here against pressing shift key
        break;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接