哪个接口用于检测对话类(Android SDK)中的关键事件?
我创建了一个简单的自定义对话框,要求用户“按键”。这样做的目的是,我可以将他们按下的任何键映射到应用程序中的某个函数。不幸的是,我无法找出用于检测关键事件的正确接口。我的班级是这样的:哪个接口用于检测对话类(Android SDK)中的关键事件?,android,sdk,dialog,onkeyup,onkeydown,Android,Sdk,Dialog,Onkeyup,Onkeydown,我创建了一个简单的自定义对话框,要求用户“按键”。这样做的目的是,我可以将他们按下的任何键映射到应用程序中的某个函数。不幸的是,我无法找出用于检测关键事件的正确接口。我的班级是这样的: public class ScancodeDialog extends Dialog implements OnKeyListener { public ScancodeDialog( Context context ) { super(context); set
public class ScancodeDialog extends Dialog implements OnKeyListener
{
public ScancodeDialog( Context context )
{
super(context);
setContentView( R.layout.scancode_dialog );
setTitle( "Key Listener" );
TextView text = (TextView) findViewById( R.id.scancode_text );
text.setText( "Please press a button.." );
ImageView image = (ImageView) findViewById( R.id.scancode_image );
image.setImageResource( R.drawable.icon );
getWindow().setFlags( WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM );
}
@Override
public boolean onKey( DialogInterface dialog, int keyCode, KeyEvent event )
{
if( keyCode != KeyEvent.KEYCODE_MENU )
dismiss();
return true;
}
}
我尝试过使用和不使用getWindow().setFlags()行(这是另一个问题的建议,对我的情况没有帮助)。显然,稍后我将向该类添加更多功能,但是现在只要用户按下一个键,对话框就会关闭。但是,永远不会调用onKey
我最初尝试从视图使用键侦听器界面:
import android.view.View.OnKeyListener;
但是,由于对话框不是视图,所以这不起作用。我还尝试了DialogInterface中的一个:
import android.content.DialogInterface.OnKeyListener;
这似乎是一个更好的选择,因为API表明Dialog实现了DialogInterface,但我仍然没有收到关键事件。有什么建议我可以试试吗?您从未声明过要听按键的对话框 例如:
this.setOnKeyListener(...)
this关键字指的是它所在的类。。这是一个对话框。onkey侦听器是“this”。。我是不是要说“this.setOnKeyListener(this)”?这似乎是多余的,但我会努力的..成功了,你是个天才!我从来没有想过要尝试一下。或者你可以尝试一个匿名侦听器,而不是实现整个过程。