EditText&回车键

时间:2013-01-12 00:41:20

标签: android keyevent editview

我想要功能

  1. 只需输入 - EditText返回并提交文本
  2. shift + Enter - EditText中的新行
  3. 这是代码,但它不起作用。 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 个答案:

答案 0 :(得分: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;
    }
}
相关问题