SearchView作为AlertDialog的一部分

时间:2011-05-07 23:35:36

标签: android

[这也发布在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。

1 个答案:

答案 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