gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:32:06 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com