2011-05-07 106 views
0

我正在写使用的应用程序的Android 2.1 在某些时候,我打电话setOnKeyListener 特别是我写的...等待键盘输入

editfield=(EditText)findViewById(R.id.edittext); 
    editfield.setOnKeyListener(this); 

这是在主线程,在OnCreate回电话。 在代码中的这一点上,我希望处理停止并等待 键盘输入。如果我让代码运行,逻辑将很快破坏。

我想我可以把机器放在等待循环中,直到按键调用onClick方法。我也可以在需要用户输入的地方创建一个等待循环。但是我对这两种解决方案都感到不舒服。 (一个相关的问题是 - 在代码中的某个点,屏幕必须点亮,我必须在继续点之前检查它吗?

也许我对文档不太好,但我没有能够找到具体的事情,回答这些问题。

有人能向我解释如何完成我需要的时间,更generaly,在哪里可以找到这些问题的信息?提前

感谢。

-looking in DC

回答

2

Android密钥系统是基于事件的,它不像C/C++等老式的问答机制那样工作,以获得用户输入。

如果你阻止/等待 - 那么如果用户按Home键(你无法捕捉到)或导航到另一个应用程序会发生什么 - 你的应用程序将强制关闭,因为它仍然会等待,你的 etc不会执行。

我的建议是:

  1. 把所有的点击后应该发生到一些功能
  2. 将听者在onCreate结束的代码,这种方式没有更多的代码后,你可以执行设置收听者
  3. 当你得到一个键,请调用你的函数。因此,在你的函数语句会键按下

但是,如果这是,比赛结束后只执行,那么它是可以接受的有一个专门的触摸/键事件,睡了50岁或线程所以要避免事件过载(但这绝不能是主UI线程!)