2011-05-07 60 views
1

的一部分[这是在Android开发者论坛上发布,以及]搜索查看作为AlertDialog

我试图将搜索小工具[SearchView基本上在一个AlertDialog的 标题的一部分。这是允许的,即它会起作用吗?该 想法是让用户输入搜索词,并在键盘上时,他/她按下 的输入键,通过一个字符串数组使用进入到 搜索的搜索词,结果显示为一个 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

我在这里猜测,但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没有任何进一步的行动。不幸的是,

+0

没有帮助。也许,我不是这样想的。下面贴是代码.... \t \t \t dialogBu​​ilder.setOnKeyListener(新OnKeyListener(){ @覆盖 公共布尔安其(DialogInterface对话框,INT的keyCode, \t \t KeyEvent的事件){ \t // TODO自动 - 生成方法存根 \t Log.v(TAG,“onKey .............”); \t return true; }}); 我甚至没有看到OnKeyListener被解雇...... – 2011-05-08 04:00:16