我正在使用 TextViewUndoRedo class对于撤消/重做操作,它可以工作,但我希望在 orientation/onConfigurationChange
之后保留该值。
那个类中有两个方法:storePersistentState(Editor editor, String prefix)
和restorePersistentState(SharedPreferences sp, String prefix)
,它们是做什么的?
我想,这些是为了 onConfigurationChanged
并按以下方式实现,但它们没有用?
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
vNoteText = vEditNote.getText().toString();
//----------------------------------------------------------------//
SharedPreferences sp = getSharedPreferences("unforedopref", 0);
SharedPreferences.Editor editor;
editor = sp.edit();
mTextViewUndoRedo.storePersistentState(editor, "undoredokey");
//----------------------------------------------------------------//
setContentView(R.layout.notepadmain);
vEditNote.setText(vNoteText);
//----------------------------------------------------------------//
mTextViewUndoRedo.restorePersistentState(sp, "undoredokey");
}
如果您提供一种可以在 onOrientationChange
中运行的撤消重做技术示例,那将会很有帮助。
最佳答案
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
SharedPreferences sp = getSharedPreferences("unforedopref", 0);
mTextViewUndoRedo.storePersistentState(sp.edit(), "undoredokey");
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
SharedPreferences sp = getSharedPreferences("unforedopref", 0);
mTextViewUndoRedo.restorePersistentState(sp, "undoredokey");
}
您需要在 Activity 的生命周期方法中保存和恢复状态
关于java - 如何在 android EditText 中实现撤消/重做并保留方向更改的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199742/