我想要做的就是以編程方式將onKeyDown偵聽器添加到現有活動。關於我想要做的事情的上下文:我想做一個獨立的函數來處理在mediaplayer中發生的點擊事件。Android - 以編程方式向活動添加關鍵偵聽器
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監聽器。
即:
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; } }); }
這是可能做到想象這個功能呢?我沒有得到任何迴應這樣做的關鍵事件。
乾杯
也許我錯過了這裏很明顯的一些東西,但是你期望會發生什麼?你初始化一個變量並返回false – codeMagic
我很困惑'onKeyDown()'已經是一個監聽器,你爲什麼要做一個監聽器? – Sam
這只是存根代碼。我想動態地創建一個keyEventListener。我想處理活動中發生的單擊事件,但是在該活動中沒有實例化onkeyDown偵聽器。這可能會讓人感到奇怪,但我向你保證,有很好的推理。簡而言之,我想知道是否可以調用一個爲整個活動創建關鍵事件偵聽器的函數。 – Dave