java - 如何在 android EditText 中实现撤消/重做并保留方向更改的值?

标签 java android undo-redo

我正在使用 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/

相关文章:

java - 使用 Javafxpackager 添加多个依赖的 Jars

java - FileNotFoundException : mybatis configuration, 映射器

java - 将输入流传递给视频 View

java - JTextArea setText() & UndoManager

java - 在 Java 中为状态更改实现撤消

java - 在单行中对齐 iText 中的文本

java - 在java中为字符串构造一个唯一的数字

android - cocos2d-x中tableview的cell touch误操作

android - 如何在 Android Things 上录制语音

java - 扩展 Swing 的 UndoManager 以提供重复和多个撤消/重做