简体   繁体   中英

KeyEvent.KEYCODE_ENTER how to raise

My java class file looks like

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;
}

}

and xml

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

<TextView android:id="@+id/signinemailtxt"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="Email" android:textSize="20dp" android:layout_marginTop="65dp"
    android:layout_marginLeft="25dp" android:paddingRight="50dp" android:textColor="#000000"/>

<EditText android:id="@+id/signinemailid" android:hint="email@domain.com"
    android:layout_height="28dp" android:layout_width="170dp"
    android:layout_toRightOf="@+id/signinemailtxt"

     android:layout_marginTop="65dp"
    android:background="#ffffff" android:layout_below="@+id/signinlayout" />

<TextView android:id="@+id/signinpasswordtxt"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="Password" android:textSize="20dp"
    android:layout_marginTop="20dp" android:layout_marginLeft="25dp"
    android:layout_below="@+id/signinemailtxt" android:paddingRight="15dp" android:textColor="#000000" />

<EditText android:id="@+id/signinpassword" android:hint="password"
    android:layout_height="28dp" android:layout_width="170dp"
    android:layout_toRightOf="@+id/signinpasswordtxt"
     android:layout_marginTop="20dp"
    android:background="#ffffff" android:layout_below="@+id/signinemailid" />

Now when i press enterkey in phone it doesnt go to the intent..the focus stays up with edittext passsword its self...what to do?

Adding following lines in your java code:

1) Create an object of your edit text:

EditText editText = (EditText) findViewById(R.id.signinpassword);

2) Add a onKeyListener to it:

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" ,这对我android:imeOptions="actionDone"

发生这种情况是因为当usr命中物理键时调用onkey方法你应该覆盖ime选项中存在的键,即软键盘

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM