0

カスタム アダプターが設定されている GridView があります。カスタム アダプターの getView() メソッドは、2 つの TextView と EditText が水平に配置された LinearLayout を返します。EditText にテキストを入力するためのカスタム数値キーボードを作成しました。キーボードには NEXT および PREV ボタンも含まれており、これが問題を引き起こしています。NEXT ボタンで次の行の次の EditText に自動的にフォーカスし、同様に PREV ボタンを使用したいと考えています。NEXT ボタン onKeyPress は次のようになります。

View v=getWindow().getCurrentFocus().focusSearch(View.FOCUS_FORWARD);
if(v!=null)
v.requestFocus();

コードは正しいようです。問題は、現在、gridView に 3 行しか表示されていないとします。フォーカスが 3 番目の EditText にあり、NEXT が押された場合、何もフォーカスされません。この問題を解決する方法がわかりません。誰かがそれを解決する方法を知っているなら。

事前にサンクス。

4

1 に答える 1

0

editTextレンダリング用に追加しながら、すべての の ID のコレクションを同じ順序で維持できますか。

その場合、clickHandlerまたは NEXT/PREV ボタンで、次のことを確認できます。

  1. clickHandler前の: 現在の選択がリストの最初にある場合、リストの最後の要素にフォーカスを設定したい場合があります。
  2. clickHandlerNEXT の場合: 現在の選択がリストの最後にある場合は、リストの最初の要素にフォーカスを設定することをお勧めします。

または、リストのロールバック機能が必要ない場合は、リスト内の要素の位置を確認し、必要な方法で瀬戸際の要素を処理できます。

あなたの問題を正しく理解できたことを願っています。

HTH

于 2013-04-20T09:03:04.710 に答える