我有一个edittext和一个按钮。我希望在edittext中按键盘上输入/回车时调用按钮onclick处理程序。
xml layout:
<EditText android:id="@+id/input"
android:layout_weight="1"
android:layout_width="0dp"
android:maxLength="1"
android:layout_height="wrap_content"
android:hint="@string/enter" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="handler"/>
处理程序如下所示:
public void handler(View view){
//handles buttonclick here
}
我已经阅读了有关Stack溢出的其他答案,但没有一个解决方案对我有用,因为我可能做错了。有人告诉我如何在edittext中按下ENTER键时如何调用处理程序?
我正在运行代码的设备是带有Honeycomb的Acer Iconia A501Tablet。
这是完整的java文件 http://pastebin.com/tbTTu7T7
答案 0 :(得分:1)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
/// call click event here by passing view
//or u can write code which u want to be called onclick
return true;
}
}
return super.onKeyDown(keyCode, event);
}
答案 1 :(得分:1)
试试这个..
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
button.performClick();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
答案 2 :(得分:0)
这很有用
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ENTER:
button.performClick();
return true;
default:
return super.onKeyUp(keyCode, event);
}
}