1

デバイスが回転すると、縦向き/横向きに基づいてさまざまなレイアウトができます。したがって、この行をマニフェストに入れることはできません:

android:configChanges="orientation|screenSize|keyboardHidden"

ただし、ユーザーがEditTextフィールドにいてキーボードが出ていて、そのフィールドにテキストが入力されている場合、デバイスを回転すると、キーボードが非表示になり、テキストが失われます (ユーザーにとってイライラします)。

この状況を処理する適切な方法はありますか?

4

1 に答える 1

1

を使用android:configChangesしてオーバーライドonConfigurationChangedし、EditText にあるものを一時変数に保存し、UI 初期化メソッドを呼び出して (onCreate から findViewById を取り出して別のメソッドに入れます)、EditText を一時変数。

ここに私がボタンのためにしたことのサンプルがあります

@Override

public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.main);
    Log.i("configChange", "configChange");      
    String tmp = connect.getText().toString();
    boolean onTmp = on.isEnabled();
    boolean offTmp = off.isEnabled();
    boolean connTmp = reconnect.isEnabled();
    InitializeUI();
    connect.setText(tmp);
    on.setEnabled(onTmp);
    off.setEnabled(offTmp);
    reconnect.setEnabled(connTmp);
}
于 2013-02-21T19:23:38.367 に答える