Android Dialog OnKeyUp(KeyEvent)?

时间:2015-03-04 21:32:24

标签: android xamarin keyevent

我有一个对话框,在这个对话框中我有一个按钮。按下搜索时,假设出现。这完全没问题。

但我希望能够设置OnKeyUp事件,因此如果用户点击手机上的实际搜索按钮(而不是屏幕上),则会显示搜索视图。

我能够以这种方式在活动中这样做:

public override bool OnKeyUp(Keycode keyCode, KeyEvent e)
{
    if (keyCode == Keycode.Search) {
        // do something here
    }
    return base.OnKeyUp (keyCode, e);
}

但这是一种override方法。如何为Dialog打电话呢? 这就是我创建Dialog

的方式
multiSelectDialog = new Dialog (context);
multiSelectDialog.RequestWindowFeature (1);
multiSelectDialog.SetContentView (dialogView);
multiSelectDialog.Show ();

Dialog具有OnKeyUp属性。

multiSelectDialog.OnKeyUp(KeyCode.Search, KeyEvent e);

但我不确定如何创建KeyEvent

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

onKeyUp()是对Dialog的回调,它会在关键活动中被调用,您不会自己调用它。

相反,您必须扩展Dialog并覆盖onKeyUp(),例如:

multiSelectDialog = new Dialog(context) {
    @Override
    public boolean onKeyUp (int keyCode, KeyEvent event) {
        // do something here
        return true; // or false, depending on what you want to do
    }
};
multiSelectDialog.requestWindowFeature(1);
multiSelectDialog.setContentView(dialogView);
multiSelectDialog.show();