1

上に EditText があり、その中に LinearLayout がある ScrollView があるアクティビティがあります。

LinearLayout は、開始インテントで渡されたオブジェクトに基づく一連の動的ビューを使用して、onCreate メソッドに取り込まれます。これは通常、EditText のセットです。

結果は、それぞれが異なるデータに対応する EditTexts のリストです (編集されるデータセットは非常に可変であるため、リストはこのように動的に作成する必要があります)。

問題は、これらのビューの 1 つにフォーカスがあり、向きが変わると (たとえば、ユーザーがキーボードをひっくり返して入力すると)、フォーカスがアクティビティの最上部にある EditText にスナップすることです。ユーザーがキーボードを離したときに一番上の EditText を入力するつもりはなかったので、これは明らかに望ましくない動作です。

このようなビューのリストを動的に作成し、この望ましくないフォーカス変更動作を行わないようにするにはどうすればよいですか?

4

2 に答える 2

1

動的 EditText のそれぞれに一意で一貫した ID を割り当てる必要があることがわかりました。

アクティビティがフォーカスを適切に保持できなかった理由は、id がないためにビューを再配置する方法がなかったためです。

于 2010-11-09T16:17:29.130 に答える
-1

方向の変更が発生すると、onDestroy()が呼び出され、 を使用してアクティビティが再度作成されonCreate()ます。そのため、見つかった最初の EditText にフォーカスがスナップされます。

これを見たいと思うかもしれません:ランタイムの変更の処理

具体的には、このトピック:構成変更中にオブジェクトを保持する

于 2010-11-09T01:09:18.383 に答える