所以 EditTexts 应该在改变方向时保存它们的文本。在这个特定的片段中,他们没有。这是为什么?
我的片段:
public class LoginFragment extends Fragment {
/**
* @param inflater
* @param container
* @param savedInstanceState
* @return
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater,
* android.view.ViewGroup, android.os.Bundle)
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.login, container, false);
}
/**
*
* @see android.support.v4.app.Fragment#onStart()
*/
@Override
public void onStart() {
super.onStart();
getView().findViewById(R.id.login_ok).setOnClickListener(
new OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(getActivity(),
StartActivity.class));
}
});
}
}
我在 xml 中的编辑文本:
<EditText
android:id="@+id/login_user"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/roundedcorner"
android:ems="10"
android:hint="@string/email"
android:inputType="textEmailAddress"
android:padding="8dp" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/login_pw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/roundedcorner"
android:ems="10"
android:hint="@string/password"
android:inputType="textPassword"
android:padding="8dp" />
这是我的活动的 onCreate 方法:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.login_frame, new LoginFragment());
ft.commit();`