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(); ArrayListfacusables = root.getFocusables(View.FOCUS_FORWARD);
と、リストにフォーカス順にViewへの参照を退避しておき、それを使った方がよさそうだ。