Java KeyEvent.KEYCODE\输入如何提升

Java KeyEvent.KEYCODE\输入如何提升,java,android,xml,Java,Android,Xml,我的java类文件看起来像 public class SignIn extends Activity { /*** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.signin); } /**

我的java类文件看起来像

public class SignIn extends Activity {

/*** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.signin);
}

/***Enter key event in phone********************************/
public boolean onKey(View v, int keyCode, KeyEvent event) {
    switch(keyCode) {
    case KeyEvent.KEYCODE_ENTER:
     Intent intent = new Intent(SignIn.this, List_Of_Songs.class);
     startActivity(intent);
            break;

    default:
            return false;
    }

    return true;
}
}

和xml

<?xml version="1.0" encoding="utf-8"?>



现在,当我在手机中按enterkey时,它没有达到目的..焦点停留在edittext Passbrow本身…该怎么办?

这是因为当usr点击物理键时,会调用onkey方法,u应该覆盖ime选项(即软键盘)中的键,在java代码中添加以下行:

1) 创建编辑文本的对象:

EditText editText = (EditText) findViewById(R.id.signinpassword);
2) 向其添加onKeyListener:

editText.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                switch(keyCode) {
    case KeyEvent.KEYCODE_ENTER:
     Intent intent = new Intent(SignIn.this, List_Of_Songs.class);
     startActivity(intent);
            break;

    default:
            return false;
    }

    return true;

            }
        });

一旦我从xml文件中删除了
android:imeOptions=“actionDone”
,这对我来说就奏效了

editText.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                switch(keyCode) {
    case KeyEvent.KEYCODE_ENTER:
     Intent intent = new Intent(SignIn.this, List_Of_Songs.class);
     startActivity(intent);
            break;

    default:
            return false;
    }

    return true;

            }
        });