3

機能性が欲しい

  1. ただ入力してください -- EditText を返し、テキストを送信します
  2. shift+Enter -- EditText の改行

これはコードですが、機能しません。Enter と shift+Enter の間に違いはありません (改行なし):

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

text.setOnEditorActionListener( new OnEditorActionListener() {

        @オーバーライド
        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

                true を返します。
            }
            false を返します。
            }
    });

layout.xml で:

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

1 に答える 1

4

次のように、シフトキーリスナーを使用して、シフトキーが押されたことを検出するブール値を保持する必要があると思います。

Android シフト キー リスナー

@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 に答える