在Android应用程序纵向模式下更改横向模式我的EditText值已清除

时间:2011-04-29 06:17:45

标签: android

在Android应用程序纵向模式下更改横向模式我的EditText值清除

2 个答案:

答案 0 :(得分:1)

当发生旋转时,活动总是重新启动。

所以请记住这一点,在从纵向旋转到横向时保持变量,反之亦然。

答案 1 :(得分:1)

EditText应自动将文本值保存在方向更改上。我可以想到为什么要清除它的两个原因:

1)您正在实现onSaveInstanceState,但未能调用super.onSaveInstanceState 2)editText没有有效的ID。没有有效ID的editText的示例是以编程方式创建的editText,例如将editText添加到AlertDialog。这可以通过创建简单的布局来解决,如:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
<EditText android:text="Stateful"
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</EditText>
</LinearLayout>

并按照以下方式对布局进行充气:

AlertDialog.Builder builder= new AlertDialog.Builder(this);
LayoutInflater inflater= getLayoutInflater();
final View myView= inflater.inflate(R.layout.alert_dialog_text_entry, null);
builder.setTitle("About");
builder.setMessage(alertMessage+"Version: "+versionName);
builder.setView(myView);
AlertDialog alert= builder.create(); 

希望有所帮助。