gpt4 book ai didi

android - 从保存的实例恢复 fragment 时如何防止 editText 自动填充文本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:38 25 4
gpt4 key购买 nike

我有一个包含并显示多个 fragment 的 Activity 。

当我重新输入 fragment 时,它会自动填充所有编辑文本中的文本。所有字段的文本也是相同的。

例子:

打开fragment并在两个editTexts中填写文本:
CustomEditText1: [______]
CustomEditText2:[_acb__]
CustomEditText3: [_qwe__]

点击后退按钮并重新输入 fragment
CustomEditText1: [_qwe__]
CustomEditText2:[_qwe__]
CustomEditText3: [_qwe__]

这是我在 fragment 中覆盖的方法:

public AddBookingFragment() {
// Required empty public constructor
}

@Override
public void onAttach(Context context) {
super.onAttach(context);
tabsActivity = (TabsActivity) getActivity();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_add_booking, container, false);

lastNameEditText = (NASEditText) view.findViewById(R.id.nas_add_booking_last_name);
pnrEditText = (NASEditText) view.findViewById(R.id.nas_add_booking_pnr);

addButton = (NASButton) view.findViewById(R.id.nas_add_booking_add_button);
scanButton = (NASButton) view.findViewById(R.id.nas_add_booking_scan_button);

confirmationBox = (LinearLayout) view.findViewById(R.id.nas_add_booking_confirmation_box);
confirmationText = (NASHeaderAndSubtext) view.findViewById(R.id.nas_add_booking_confirmation_text);
confirmationBox.setVisibility(View.GONE);

bindButtons();

FontHelper.setFont(container, tabsActivity);
return view;
}

通过调试,我可以看到 editText 正在通过在覆盖的 OnTextChanged 内设置断点来设置文本。

这是该断点的堆栈跟踪: Stacktrace
(NASEditText 是我的自定义 View )

两个问题/疑问:

  1. 如何防止 Activity/fragment/editText 在恢复 fragment 时填充字段中的文本?
  2. 为什么要为所有字段填写相同的文本?

最佳答案

在 friend 的帮助下发现了问题!

SaveEnabled 在 Android 中的 editTexts 上默认为 true。


解决办法就是设置:
setSaveEnabled(false);
在你的 editText 上。

事实证明,Android 在如何为同一层次结构中具有相同 ID 的 View (即使在具有不同 ID 的父 View 中)恢复状态方面并不是很聪明。我刚刚关闭了它,因为我将我的状态保存在 ViewModel 对象中并从 fragment 的 onCreateView() 中恢复它。

关于android - 从保存的实例恢复 fragment 时如何防止 editText 自动填充文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43208708/

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