Android EditText内容在方向更改时倍增

时间:2011-06-29 08:10:19

标签: android android-edittext

我在EditText中遇到了奇怪的情况。 情况:

  1. 将设备设置为横向模式
  2. 在EditText中输入文字,然后按 “DONE”
  3. 更改方向
  4. EditText包含双重文本 是打字
  5. 代码:

    private EditText enterText;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        enterText = (EditText) findViewById(R.id.enterText);
    }
    

    如果我用findViewById评论该行,一切正常。

    为什么会发生这种情况?

    编辑:我已经仔细检查了,每次都会发生这种情况,不仅仅是我写的关于评论的行...: - \

    EDIT2:仅在第一个方向更改事件时发生。接下来就好了..

1 个答案:

答案 0 :(得分:1)

每次旋转手机时,Activity都会重新启动,这可能会调用导致文本以某种方式再次写入的内容。这是操作系统的一部分,有点烦人,这就是要做的事。

如果您在清单中添加:

android:configChanges="orientation"

到旋转完成的活动节点,你必须覆盖 onConfigurationChanged

@Override
public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
  setContentView(R.layout.myLayout);

}

每当手机旋转时,覆盖方法都会调用,你可以进行特殊的初始化,如果之前有输入则忽略输入等。希望这能让你走上正轨!

PS:您还可以使用其他不同的“值/配置”来管理 configChanges 。例如 keyboardHidden 等等。

它们列在 following link