我有一个对话框,在这个对话框中我有一个按钮。按下搜索时,假设出现。这完全没问题。
但我希望能够设置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
。
感谢您的时间。
答案 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();