[这也发布在Android开发者论坛上]
我正在尝试将搜索小部件[SearchView
基本上]放在
AlertDialog
的标题部分。这是允许的,即它会起作用吗?该
想法是让用户输入搜索词并在他/她按下时输入
键盘上的 Enter 键,使用输入的搜索词
搜索字符串数组并将结果显示为
listView
位于同一AlertDialog
个身体部位。以下是
一段相关的代码。
AlertDialog.Builder dialogBuilder = new
AlertDialog.Builder(MainActivity.this);
RelativeLayout titleLayout = new RelativeLayout(this);
SearchView sv = new SearchView(this);
titleLayout.addView(sv);
dialogBuilder.setCustomTitle(titleLayout);
当我运行此代码时,我看到标题中的搜索小部件正常。
当我在搜索框内单击时弹出虚拟/软键盘 -
但我无法输入,因为AlertDialog
消失了
我点击它外面的任何地方(应该)。我想知道
如果键盘与正在启动的活动相关联
AlertDialog
而不是AlertDialog
本身的上下文。
有什么想法吗?
TIA。
答案 0 :(得分:0)
我在这里猜测,但是android.app.Dialog
实现了android.view.KeyEvent.Callback
,所以你应该能够覆盖
public abstract boolean onKeyDown (int keyCode, KeyEvent event)
和
public abstract boolean onKeyUp (int keyCode, KeyEvent event)
只是return true
,因此无需任何进一步操作就可以捕获KeyEvent
。