我正在開發一個簡單的應用程序,允許用戶發佈網站上的文章。最好的方法來備份用戶的輸入處理方向變化
這只是一個簡單的表單,帶有標題和文本以及發送按鈕的輸入。
爲此,我在裏面使用了一個名爲ArticleFragment的Fragment的FragmentActivity。
我到處讀過,保存用戶輸入的最好方法是覆蓋片段中的onPause(),並在onCreateView()中恢復它們。
@Override
public void onPause() {
Log.i(TAG, "Pausing fragment");
Log.i(TAG, "Saving edits");
// Sauvegarde des saisies
EditText titreEdit = (EditText) getActivity().findViewById(R.id.titre_saisie);
EditText texteEdit = (EditText) getActivity().findViewById(R.id.texte_saisie);
String titre = titreEdit.getText().toString();
String texte = texteEdit.getText().toString();
SharedPreferences settings = getActivity().getPreferences(0);
Editor editor = settings.edit();
editor.putString("titre", titre);
editor.putString("texte", texte);
editor.commit();
Toast toast = Toast.makeText(getActivity(), R.string.article_enregistre, Toast.LENGTH_SHORT);
toast.show();
super.onPause();
}
正如您所看到的,每次活動暫停時,都會顯示Toast以通知用戶輸入已保存。
這就是我想要的。但是,無論何時用戶改變屏幕的方向,彈出窗口都會再次顯示(因爲活動已暫停,然後被銷燬),這可能會使用戶感到厭煩。
我試圖在Manifest中添加android:configChanges =「orientation」,但我認爲這不是解決此問題的最佳方法。
我也嘗試使用onSaveInstance()做出解決方案,但我不明白它是如何工作的:有時onSavedInstance是null,有時不是。
所有這些,主要問題是什麼是保存用戶輸入的最佳方式,方向更改和返回按鈕,以及恢復保存的位置。
謝謝!
請勿爲標的添加標籤 –
對不起! – Modzful