0
  1. 入力を開始しました(写真A)。
  2. 画面を回転させ、テキストの入力を続けます(画像B)。
  3. 画面を縦向きに回転させると、古いテキストが表示されます。

なんで?

<activity 
 android:name=".activity.Login"
 android:configChanges="orientation"  />

onConfigurationChanged:

    String email = etEmail.getText().toString();
    String password = etPassword.getText().toString();

    setContentView(R.layout.login);

    etEmail = (EditText) findViewById(R.id.etEmail);
    etEmail.setText(email);
    etPassword = (EditText) findViewById(R.id.etPassword);
    etPassword.setText(password);
    btnLogin = (Button) findViewById(R.id.btnLogIn);
    btnLogin.setOnClickListener(lBtnLogin);

A:

A

B:

B

4

2 に答える 2

0

使ってみて

android:configChanges="orientation|screenSize"

Android 4以降、これはscreenSizeと同様に追加する必要があると思います

于 2012-04-25T19:59:44.357 に答える
0

これはあなたのために働くかもしれません。

String email = etEmail.getText().toString();
String password = etPassword.getText().toString();
etEmail = (EditText) findViewById(R.id.etEmail);
etEmail.setText(email);    
etPassword = (EditText) findViewById(R.id.etPassword);
etPassword.setText(password);
btnLogin = (Button) findViewById(R.id.btnLogIn);
btnLogin.setOnClickListener(lBtnLogin);

このコードを onConfigurationChanged に追加する理由がわかりません。このコードを onConfigurationChanged に追加しなくても、同じ結果が得られます。向きごとに異なるレイアウトを設定したい場合は、xml レイアウトをもう 1 つ作成し、res/layout-land に保持します。

于 2012-04-25T23:02:12.800 に答える