3

我想要功能

  1. 只需 Enter -- EditText 返回并提交文本
  2. shift+Enter -- EditText 中的新行

这是代码,但它不起作用。Enter 和 shift+Enter 之间没有区别(没有换行):

EditText text=(EditText)findViewById(R.id.text);

text.setOnEditorActionListener(新的 OnEditorActionListener(){

        @覆盖
        公共布尔 onEditorAction(TextView v,int actionId,KeyEvent 事件){

            if ( (actionId == EditorInfo.IME_ACTION_DONE) ||
                ( ((event.isShiftPressed()==false) &&
                (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) &&
                (event.getAction() == KeyEvent.ACTION_DOWN))){

                可编辑 buff=(Editable)v.getText();
                writeText(buff.toString());

                context.finish(); // texten sparad här o activity avslutas

                返回真;
            }
            返回假;
            }
    });

在 layout.xml 中:

android:inputType="text|textMultiLine"
android:imeOptions="actionDone"
4

1 回答 1

4

我认为您需要使用 shift 键侦听器并保持布尔值来检测何时按下 shift 键,如下所示:

Android shift键监听器

@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;
    }
}
于 2013-01-12T00:49:24.747 回答