我想要做的就是以编程方式将onKeyDown监听器添加到现有活动中。我想做的事情的一些上下文:我想创建一个独立的函数来处理媒体播放器中发生的点击事件。
ie:让我假装我有这门课。
public class Main extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maingui);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
}
return false;
}
}
我想要做的是添加一个通过编程添加onKeyDown Listener的函数。
即:
public class Main extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maingui);
createListener();
}
}
public void createListener()
{
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
}
return false;
}
}
这显然不起作用,但会让你对我正在尝试做的事情有所了解。
这是我尝试过的不起作用。
public class Main extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maingui);
MyKeyClickClass.createListener(this);
}
}
然后想象一下MyKeyClickClass类中的这个函数
public static void createListener(Activity act)
{
View testing = act.getWindow().getDecorView().findViewById(android.R.id.content);
testing.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
String test = "Hi";
return false;
}
});
}
这可能吗?我没有得到任何回应这样做的关键事件。
干杯
答案 0 :(得分:1)
如果由于某种原因你不能只使用onKeyDown,难道你不能让onKeyDown将其参数传递给另一个函数吗?
如果你创建一个myKeyListener类,那么你可以这样做。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
myKeyListener.onKeyDown(keyCode, event);
}