View#focusSearch

第一引数にディレクション、つまり探す方向を設定するのだが一方向しか探さないので、順方向にフォーカス対象を探す場合、以下のように書く必要がある。

View next = this.view.focusSearch(View.FOCUS_RIGHT); //右方向になければnull
if ( next == null )
    next = this.view.focusSearch(View.FOCUS_DOWN); //下方向も探す

であれば

View next = this.view.focusSearch(View.FOCUS_DOWN|View.FOCUS_RIGHT); //下方向又は右方向

又は

View next = this.view.focusSearch(View.FOCUS_FORWARD); //順方向

と書けた方が分かり易いし便利だと思うのだが、実際には上手くいかない。(後者は例外発生。だから整数は嫌いだ)

動的にレイアウトの変更をしないと解っているのであれば、以前に書いたように

View root = this.getWindow().getDecorView(); 
ArrayList facusables = root.getFocusables(View.FOCUS_FORWARD);

と、リストにフォーカス順にViewへの参照を退避しておき、それを使った方がよさそうだ。