工具栏标题在设备上旋转时更改为在 EditText 中输入的文本?

Toolbar title changes on rotation on device to entered text in an EditText?

我的 Toolbar 正下方有一个 editText。但是当我的设备旋转时,工具栏的标题(由 XML 设置)更改为 editText 的当前文本。

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/newOccasion"
        android:textColor="#FFFFFF"
        android:textSize="18sp" />
</android.support.v7.widget.Toolbar>

<EditText
    android:id="@+id/titleET"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    android:drawableStart="@drawable/ic_title"
    android:hint="@string/titleET"
    android:maxLines="1"
    android:nextFocusLeft="@+id/titleET"
    android:nextFocusUp="@+id/titleET"
    android:paddingEnd="5dp"
    android:paddingStart="5dp"
    android:textSize="17sp"
    android:theme="@style/inputColors"
    android:lines="1"
    android:maxLength="35"/>

完整 XML 此处: http://pastebin.com/JBeAkVqY

只需在 activity 中重写这些方法:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    // Always call the superclass so it can save the view hierarchy state
    super.onSaveInstanceState(savedInstanceState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    //do nothing
}

效果很好。这些会将您以前的文本恢复到您执行旋转设备等操作时的状态。