我正在开发一个简单的应用程序,允许用户发布网站上的文章。最好的方法来备份用户的输入处理方向变化
这只是一个简单的表单,带有标题和文本以及发送按钮的输入。
为此,我在里面使用了一个名为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