2017-08-26 77 views
0

步驟如下: 1.運行應用程序 - >確定,EditText上設置爲「你好」 2.清除文本手動 3.旋轉裝置EditText上沒有設置

我希望那是什麼EditText再次設置爲「hello」,因爲循環後重新創建活動。但是,EditText是空的。代碼:

public class MainActivity extends AppCompatActivity { 

EditText editText; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    editText = (EditText) findViewById(R.id.editText1); 
    editText.setText("hello"); 
} 
} 
+0

你添加任何標誌到活動中的manifest.xml? –

+0

不,我在AndroidStudio中創建了一個空的Activity,xml佈局只包含此EditText,沒有任何附加屬性(只有id,佈局寬度和佈局高度) – jreft56

+0

我在詢問Manifest.xml,而不是佈局文件 –

回答

2

嘗試添加下列到XML佈局你的EditText規格:

android:saveEnabled="false" 
+0

這個工作正常!謝謝 – jreft56

0

在清單文件中爲該活動添加configChanges約束。

+0

你的意思是android:configChanges =「orientation」?沒有區別 – jreft56

+0

是的。添加定位|屏幕尺寸 –

0

添加在您的manifest.xml文件爲Activity

 <activity 
     android:name=".SignUpActivity" 
     android:configChanges="orientation|screenSize|keyboardHidden"  
     android:label="@string/app_name" 
     /> 
2

您必須手動這麼做使用保存的實例狀態。這不是關於保存你好。這是一個非常常見的用例。假設用戶鍵入某個內容,然後旋轉手機。如果由於任何原因文本消失,用戶必須輸入所有內容。所以你必須把文本保存在某個地方。

https://developer.android.com/guide/topics/resources/runtime-changes.html

所以,你必須做的是:

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    //Here savedStateValue is a global string 
    savedStateValue = //Get the Text From Edit Text here; 
    outState.putString("savedStateKEY", savedStateValue); 
} 

和的onCreate,做這樣的事情:

if (savedInstanceState != null) { 
     //Restore the Text to EditText 
     editText.setText(savedInstanceState.getString("savedStateKEY")); 
    } 

編輯 第二部分是爲什麼會發生。這是因爲,您正在刪除「Hello」文本和屏幕方向更改,它正在從初始狀態傳遞的Bundle中還原數據。在該捆綁中,沒有「你好」,因爲你已經手動刪除它。 所以,如果你正在使用

android:saveEnabled="false" 

然後你正在安卓不保存在任何的EditText狀態。

+0

這是唯一的答案這裏的地址真正的問題。所有涉及到configChanges的其他答案只是告訴你通過不允許視圖旋轉來避免這個問題。只要學習如何恢復這個答案中提到的狀態,你會好得多。 –

-1

EditText是在設備方向變化執着,你需要使用TextView代替

+0

沒有幫助。TextView不是EditText的替代品。如果您使用EditText,則可能希望能夠編輯文本。這裏的答案是恢復EditText的狀態。見阿曼的答案的開始。 –