0

我想在android中控制箭頭鍵事件。我正在三星I5500手機上測試該應用程序。該應用程序由標籤組成。我成功地使用聽衆捕捉事件。在android中處理箭頭鍵

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    Log.i(TAG_NAME, "key event: " + keyCode); 
    if(keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { 
     Log.i(TAG_NAME, "Directional centre pad pressed"); 
    } 
} 

例如,在第三個標籤的活動包含的3項

Item A 
Item B 
Item C 

我使用向右箭頭導航到第三選項卡並點擊向下箭頭以選擇上面的項目之一的列表視圖。單擊DPAD_CENTER鍵觸發附加到listView的ItemClick偵聽器。一切都很好,直到現在。但是,之後,當前選項卡焦點將移至主頁(選項卡0)。試圖呈現UIfail的適配器,因爲它位於不同的選項卡中。最終它崩潰了。

有沒有人遇到過這個?我在互聯網上搜索。我沒有找到足夠的東西。

回答

0

如果您正在尋找使用DPAD鍵來查找不同UI項目的焦點,那麼您應該設計您的XML佈局以瞭解要關注哪個視圖。請參閱http://developer.android.com/reference/android/view/View.html#FocusHandling

您需要爲每個元素指定nextFocusUp/nextFocusDown/nextFocusRight/nextFocusLeft。

對於ListViews和Tabs,存在一個默認實現,並且出於同樣的原因,您可以向下滾動列表視圖。 (使用AIR鼠標/ dpad控制器等)