Java KeyEvent.KEYCODE\输入如何提升
我的java类文件看起来像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); } /**
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;
}
});