UIは直感的に使いたいです。各画面は、自然で控えめに、ユーザーをアプリの次のステップに案内する必要があります。それを除いて、私は物事をできるだけ混乱させ、混乱させるよう努めています。
冗談だ :-)
私には3つTableRow
のがあり、それぞれに読み取り専用でフォーカスできないEditTextコントロールと、その右側にあるボタンが含まれています。各ボタンは同じアクティビティを開始しますが、引数は異なります。ユーザーがそこで選択を行うと、サブアクティビティが終了EditText
し、ユーザーの選択が適切なものに入力されます。
これは、古典的なカスケード値メカニズムです。各選択により、次の選択で使用可能なオプションが絞り込まれます。したがって、現在の行のEditTextに値が含まれるまで、次の各行の両方のコントロールを無効にします。
次の優先順位で、2つのことのいずれかを行う必要があります。
- ボタンがクリックされたら、別のボタンにフォーカスを設定せずに、すぐにフォーカスを削除します
- アクティビティの開始時に最初のボタンにフォーカスを設定します
問題はサブアクティビティが戻った後に現れます。クリックされたボタンはフォーカスを保持します。
再:上記の#1- removeFocus()
メソッド、または類似したものがないようです
再:上記の#2- requestFocus()
次の行のボタンにフォーカスを設定するために使用できます。これはサブアクティビティが戻った後に機能しますが、何らかの理由で親アクティビティので機能しませんonCreate()
。
どちらの方向にもUIの一貫性が必要です。サブアクティビティが終了した後にボタンにフォーカスがないか、ロジックフロー内の場所に応じて各ボタンがフォーカスを受け取ります(選択前の最初の(そして唯一の)アクティブなボタンを含む)。